23.09.2013 Views

Ett kompendium om arv och gränssnitt

Ett kompendium om arv och gränssnitt

Ett kompendium om arv och gränssnitt

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!