# Øving 07: Arv og abstrakte klasser

**Øvingsmål**
*  Lære hvordan arv-mekansimen brukes i OO
* Lære om instanser, typer, deklarasjoner og tilordninger
* Lære om sub- og superklasser samt om synlighetsmodifikatorer som brukes ved arv
* Lære om abstrakte klasser, deres bruksområder og fordeler

**Øvingskrav**
* Kunne bruke arv til å modellerere enkle(re) objektstrukturer- og relasjoner i Java
* Kunne la flere subklasser bruke funksjonalitet definert i samme superklasse
* Kunne la en subklasse redefinere metoder definert i en superklasse
* Kunne samle felles oppførsel til to eller flere subklasser i en felles abstrakt klasse

## Dette må du gjøre
Oppgavene skal lagres i `ovinger/src/main/java/inheritance`.

I begge delene er antageligvis vanskelighetsgraden stigende. Alle er høyst eksamensrelevante og det anbefales følgelig å ta en titt på samtlige.

### Del 1: Arv
Velg og gjennomfør *minst én* av oppgavene om arv:

* [CardContainerImpl](./CardContainerImpl.md)
* [Train](./Train.md)
* [SavingsAccount](./SavingsAccount.md)

### Del 2: Abstrakte klasser og arv
Velg og gjennomfør *minst én* av oppgavene om abstrakte klasser og arv:

* [AbstractAccount](./AbstractAccount.md)
* [ObservableList](./ObservableList.md)


### Hjelp / mistanke om bugs

Ved spørsmål eller behov for hjelp konsulter studassen din i saltiden hans / hennes. Du kan også oppsøke andre studasser på sal eller legge ut et innlegg på [Piazza](https://piazza.com/).

### Godkjenning

Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for en læringsassistent innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.
