You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere og enklere å gjenbruke.

En klasse definerer hvilken tilstand og oppførsel instanser av klassen vil ha, hvor tilstanden er alle attributtene (i Java kalles det felt) og oppførselen er metodene (og reglene for hva de gjør). Med arv(ingsmekanismen) kan en si at en ny klasse utvider en eksisterende klasse, slik at instansene av den nye klassene får en tilstanden og oppførsel som er kombinasjonen av det som er definert i den eksisterende og den nye klassen. Et eksempel er vist i tabellen under, hvor en Book-klasse definerer attributtet title og Dictionary og CartoonAlbum utvider denne med henholdsvis attributtene wordCount og stripCount.

BookString titleDictionaryint wordCountCartoonAlbumint stripCount

Notasjon for arv: Dictionary og CartoonAlbum arver fra Book

class Book {
	String title;
}

class Dictionary extends Book {
	int wordCount;
}

class CartoonAlbum extends Book {
	int stripCount;
} 

Java-kode med bruk av nøkkelordet extends

1.book1: Booktitle = "Sofies verden"

 

 

1.nynorsk: Dictionarytitle = "Riksmålsordboken"wordCount = 32768

 

 

1.flatFirer: CartoonAlbumtitle = "Flat firer"stripCount = 128

En instans av hver klasse, hvor Dictionary og CartoonAlbum-instansene har tilstand som delvis er arvet fra Book.

Book book1 = new Book();
book1.title = "Sofies verden"

Dictionary dict1 = new Dictionary();
dict1.title = "Riksmålsordboken"
dict1.wordCount = 32768

CartoonAlbum cartoon1 = new CartoonAlbum();
cartoon1.title = "Flat firer"
cartoon1.stripCount = 128

Java-kode for å opprette og initialisere instanser.

Arvingsmekanismen er i bunn og grunn enkel, men det kompliseres litt av to faktorer:

  • deklarasjon av typer
  • innkapsling

 

 

 

  • No labels