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