Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

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.

PlantUML Macro
class Book {
	String title
}
class Dictionary {
	int wordCount
}
class CartoonAlbum {
	int stripCount
}
Book <|-- Dictionary
Book <|-- CartoonAlbum
PlantUML Macro
object "#book1: Book" as book1 {
	title = "Sofies verden"
}
object "#nynorsk: Dictionary" as dict1 {
	title = "Riksmålsordboken"
	wordCount = 32768
}

object "#flatFirer: CartoonAlbum" as cartoon1 {
	title = "Flat firer"
	stripCount = 128
}