Kezdőoldal » Számítástechnika » Programozás » Az absztrakt adattípust...

Az absztrakt adattípust nevezik elvont adattípusnak is? És ezt ADT nek rövidítik?

Figyelt kérdés
És egy ilyen osztályt tényleg nem lehet példányosítani?
2012. jún. 24. 22:07
 1/10 anonim válasza:

Üdv!

Java-ban tengődöm egy ideje és valóban létezik olyan, hogy absztrakt osztály, vagy absztrakt metódus.

Valóban nem lehet példányosítani, és ezt egy talán furcsa, de jól szemléltető példával tudnám bemutatni.

Képzelj el egy osztályt, hogy Állatok. Ennek nagyon sok alosztálya lehet, amiket példányosítva miket kapnánk? Milyen "alakja" lenne? Szemben például egy tigrissel.


Tehát képzeld el ezt:

abstract class Animal{}

class Tiger{

public static void main(String[] argv){

Animal animal = new Animal();

}

}

Nem teheted meg, hiszen semmi értelme nem lenne. Ezeket az osztályokat mindig bővítik, hiszen önmagában nem lenne értelme. Hogy a jelenlegi példával éljek, beleírhatsz több olyan metódust, ami igaz több állatra. Például megírsz egy olyat, hogy járkálás. Ez igaz lehet a tigrisre, igaz lehet a tehénre, mindenféle állatra, ezeket pedig öröklik. Elnézést, hogy ilyen állatkerti példával jöttem, de jobb nem jutott hirtelen eszembe.

2012. jún. 24. 22:14
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
Akkor most nincs értelme példányosítani az ADT(elvont) osztályt vagy nem lehet mert fordításkor hibát fog dobni?
2012. jún. 24. 22:20
 3/10 A kérdező kommentje:
Már értem.
2012. jún. 24. 22:24
 4/10 A kérdező kommentje:

Egy kérdés?

Fogom tudni példányosítani csak akkor nem ha egy vagy több üres virtuális függvényt deklarálok benne igaz?

2012. jún. 24. 22:25
 5/10 anonim ***** válasza:

"Az absztrakt adattípust nevezik elvont adattípusnak is? És ezt ADT nek rövidítik?"

Igen.


"És egy ilyen osztályt tényleg nem lehet példányosítani?"

Az absztrakt adattípus a programozási elméletben olyan típus, amelyeknek az aktuális definíciója rejtett. A példányhasíthatósága prog nyelv függő. Java-ban nem lehet ahogy @22:14-es írta, a delphi nyelv megalkotói máshogy gondolták, ők úgy gondolták, hogyha egy osztálynak van absztrakt metódusa is akkor példányosítható és az ilyen osztálybeli nem absztrakt metódus hívás lehetséges, ha absztrakt metódusdát hívjuk akkor ez "abstract method exception" kivételt generál.

2012. jún. 24. 22:32
Hasznos számodra ez a válasz?
 6/10 anonim válasza:
Java-ban, ha egy osztályba 1 absztrakt metódust raksz, akkor az egész osztályt is azzá kell tenned.
2012. jún. 24. 23:02
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:

Még két kérdés ami ehhez kapcsolódik:


Ha egy bázisosztályban deklarálok két üres virtuális függvényt:

virtual void One()const = 0;

virtual void Two()const = 0;

Akkor ha ennek egy származtatott osztályában nem valósítom meg én ezt a két változatot(csak az egyiket) akkor származtatott osztály is absztrakt adattípus lesz(ADT || elvont)?


A másik kérdés ha én megcsinálom a bázisosztályban az üres virtuális függvénynek a megvalósítását akkor azt csak én ennek csak a származtatott osztály ugyanilyen nevű függvényében fogom tudni meghívni a függvényt?

2012. jún. 25. 00:46
 8/10 A kérdező kommentje:

Az elsőre rájöttem ott igen a válasz.

De nem értem azt amit felszivárogtatásnak neveznek.

2012. jún. 25. 00:56
 9/10 A kérdező kommentje:
Már értem azt hiszem.
2012. jún. 25. 01:24
 10/10 A kérdező kommentje:
Mégsem értem.
2012. jún. 25. 02:11

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!