Kezdőoldal » Számítástechnika » Programozás » Mire jó egy absztrakt osztály...

Mire jó egy absztrakt osztály és az interfész?

Figyelt kérdés
2018. júl. 11. 12:05
 1/5 anonim ***** válasza:
OOP-s dolgokra.
2018. júl. 11. 13:44
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

Az absztrakt osztály olyan osztály amit nem példányosíthatsz, ezért csak szülője lehet más osztályoknak.


Az interfész csak leírja, hogy ha egy osztály megvalósítja őt, akkor milyen KÖTELEZŐ elemeket kell létrehozni benne (nem tartalmazhat futtatható kódot!).


pl van egy Creature absztract osztályod ami tartalmaz élőlényekre vonatkozó kódokat (nem csak metódus leírást, hanem olyan kódot ami futtatható is)


aztán van mondjuk Cat és Parrot osztályod


a Cat és a Parrot osztályok a Creature absztrakt osztályból származnak, tehát öröklik a Creature mezőit/tulajdonságait és metódusait


legyen 1 IFly interfész ami tartalmazza:

float FlySpeed; // field

public void Fly(); // metódust


Parrot: Creature, IFly


Tehát a Parrot szülőosztálya a Creature (így az abban levő public és protected osztályokat eléri) ÉS megvalósítja az IFly interfészt, tehát KÖTELEZŐ tartalmaznia FlySpeed mezőt és Fly() metódust.

2018. júl. 11. 13:47
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Köszi a válszat 2.ik, sokat segítettél!
2018. júl. 11. 13:52
 4/5 anonim ***** válasza:

Minden olyan osztály abstract, ami legalább 1 abstract függvényt tartalmaz. Egy függvény akkor abstract, ha nincs implementálva a törzse. Ezeket egyes nyelvekben külön abstract kulcsszóval jelzik. Ennek következtében nem lehet példányt létrehozni belőle (hogy lehetne, ha van olyan függvénye ami nincs megírva?).

Az interface egy olyan osztály, ami kizárólag abstract függvényeket tartalmaz. Semmi többet. (Itt kijavítanám a #2 hozzászólót, hogy nem tartalmazhat tagadatot sem, még ha egyes programozási nyelvek le is fordítják). Az ilyen osztályokat is kulcsszóval látják el bizonyos nyelvekben. Mire jó az interface? Arra, ha nem az objektum maga érdekel, hanem az, hogy tartalmaz-e olyan függvényt, amit ismerek. Így ha adott egy interface típus, legyen IType, akkor egy IType o; változónak bármilyen olyan objektumot értékül tudok adni, ami implementálja az IType típus függvényeit. Ebben az esetben igaz az, hogy nem érdekel mi van valójában az o helyén, az érdekel, hogy legyen olyan függvénye, mint az IType-nak.

2018. júl. 11. 21:59
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Az interfész egy felületet ad meg, amin keresztül a kliens elérheti az adott objektumot. Ez egy szerződés, amiben az objektum biztosítja a kliens számára az interfészben megadott dolgokat, így a kliens ezeket a szolgáltatásokat igénybe veheti. Az objektum egyszerűbben refraktorálható, kicserélhető, ami mind a továbbfejlesztést, mind a tesztelést támogatja.


Az absztrakt osztályok absztrakciókat fejeznek ki, olyan jellegzetességeket írnak le, amelyek közösek az absztrakcióból öröklő osztályok számára.

2018. júl. 12. 09:22
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!