# Ø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 [`src/main/java/oving7`](../../src/main/java/oving7).

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

For å få 2 poeng på øvingen må det gjennomføres til sammen *4* valgfrie oppgaver fra [del 1](#del-1-arv) og [del 2](#del-2-abstrakte-klasser-og-arv).

### Del 1: Arv

Velg og gjennomfør *minst én* av oppgavene om arv:

- [CardContainerImpl](./CardContainerImpl.md) (Lett) (Anbefalt)
- [Train](./Train.md) (Lett)
- [SavingsAccount](./SavingsAccount.md) (Middels)

### Del 2: Abstrakte klasser og arv

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

- [AbstractAccount](./AbstractAccount.md) (Middels) (Anbefalt)
- [ObservableList](./ObservableList.md) (Vanskelig)

## 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/ntnu.no/spring2025/tdt4100).

## 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.
