Ett kompendium om arv och gränssnitt
Ett kompendium om arv och gränssnitt
Ett kompendium om arv och gränssnitt
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.2 Syntax vid <strong>arv</strong><br />
I Java kan man endast ärva från en superklass (enkelt <strong>arv</strong>). Dock kan man samtidigt ärva<br />
ett godtyckligt antal s.k. <strong>gränssnitt</strong> (interface).<br />
Arv av en superklass indikeras med nyckelordet extends <strong>och</strong> <strong>arv</strong> av <strong>gränssnitt</strong> indikeras<br />
med nyckelordet implements.<br />
[public] [abstract|final] class <br />
[extends SuperClass] [implements InterfaceList]<br />
{<br />
[Constructors] // initialiseringsmetod(er)<br />
[Fields] // Fält<br />
[Methods] // <strong>och</strong> metoder<br />
}// i godtycklig ordning<br />
Nyckelorden abstract <strong>och</strong> final betyder att klassen inte kan instansieras <strong>och</strong> att den inte<br />
kan ärvas respektive. Mer information <strong>om</strong> abstrakta klasser finns i avsnittet Abstrakta<br />
klasser.<br />
Om man inte anger något <strong>arv</strong> (dvs. extends saknas) så k<strong>om</strong>mer ändå klassen s<strong>om</strong><br />
deklareras att ärva aut<strong>om</strong>atiskt från klassen Object, vilken är en fördefinierad klass i Java<br />
s<strong>om</strong> innehåller en del generella metoder s<strong>om</strong> alla klasser skall ha.<br />
3.3 Generella åtk<strong>om</strong>stregler<br />
Vad gäller kontroll av åtk<strong>om</strong>st så finns public, protected, private <strong>och</strong> default = "åtk<strong>om</strong>st<br />
in<strong>om</strong> paketet” att tillgå. För att använda sig av default-åtk<strong>om</strong>st så utelämnar man<br />
åtk<strong>om</strong>stmodifieraren. Konstruktorer, fält <strong>och</strong> metoder kan använda sig av alla<br />
accessdeklarationer medan klasser endast kan använda sig av public <strong>och</strong> default.<br />
default (”paket åtk<strong>om</strong>st”): Åtk<strong>om</strong>sten s<strong>om</strong> man får <strong>om</strong> man inte anger någon<br />
åtk<strong>om</strong>stmodifierare ger full tillgänglighet in<strong>om</strong> eget paket men ingen åtk<strong>om</strong>st utanför.<br />
public: Klasser, interface <strong>och</strong> medlemmar s<strong>om</strong> är publika är åtk<strong>om</strong>liga överallt förutsatt<br />
att paketet där de deklareras har importeras. Dock är publika medlemmar s<strong>om</strong> ligger i en<br />
klass s<strong>om</strong> endast har default-åtk<strong>om</strong>st normalt inte åtk<strong>om</strong>liga utanför det paketet där de är<br />
deklarerade.<br />
private: Medlemmar s<strong>om</strong> är privata är endast åtk<strong>om</strong>liga in<strong>om</strong> den egna klassen.<br />
protected: Medlemmar s<strong>om</strong> har skyddad åtk<strong>om</strong>st är fullt tillgängliga in<strong>om</strong> eget paket.