Kezdőoldal » Számítástechnika » Programozás » A két példányosítás között mi...

A két példányosítás között mi a különbség?

Figyelt kérdés

Maradjunk a JAVA nyelvnél mondjuk.

pl: van egy ősotszály (Allat), és a leszármazottja a Kutya osztály.

És ha mondjuk szükségem van egy kutya példányra, akkor mi a különbség a két variácó között?

1: Allat peldany = new Kutya();

2: Kutya peldany = new Kutya();


Mindkettőnél működik a program, csak nem értem a különbséget.


2015. márc. 22. 16:20
 1/8 anonim ***** válasza:
100%
Az 1. esetben fordítási időben Allat-ként kezeled, tehát pl. csak azokat a metódusait tudod hívni, ami az Allat-ban is benne van. Futtatási időben persze Kutya-ként működik.
2015. márc. 22. 16:22
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
21%

nem igy akartad irni?


1: Allat peldany = new Allat();

2: Kutya peldany = new Allat();

2015. márc. 22. 16:22
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
72%
#2: A 2. variációd le sem fordul... szerintem nem úgy akarta írni a Kérdező.
2015. márc. 22. 16:30
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
0%
akkor eleg szar ez a java meg a storusoup aki kitalalta, mert ugy lenne ertelme ahogy a 2-es irta
2015. márc. 22. 16:32
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
94%

# 4/4 Időpont ma 16:32


Ez a kommented el is árulta mennyire (segítek: egyáltalán rohadtul nagyon nagyon nem) értesz a programozáshoz. :-)

2015. márc. 22. 16:35
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:

Mar enis elgondolkoztam hogy elirtam:/

De én úgy tudtam hogy az ősosztályt kell előre írni, és azt lehet példányosítani egy gyerekkel.. De kipróbáltam, és nem fogadja el fordítva.

Egyébként mindegy hogy használom?

2015. márc. 22. 16:39
 7/8 anonim ***** válasza:

> Egyébként mindegy hogy használom?


A különbséget leírtam. Bizonyos esetekben 1. variáció a jó (pl. a többféle állatod van - Kutya, Macska -, de általánosan, Allat-ként akarod őket kezelni). Bizonyos esetekben meg a 2. variáció kell, amikor csak specifikusan egy Kutya objektummal akarsz foglalkozni (pl. amikor egy Kutya saját metódusát akarod hívni).

2015. márc. 22. 17:04
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Ahogyan azt már előttem leírták, az első esetben Allat típusúként kezeled a létrehozott példányt, a másodikban pedig Kutya-ként.


Hogy mi a haszna? Itt jön be a képbe a polimorfizmus, mint olyan:

Ha te egy Allat példányra vagy kíváncsi, mert a feladatod elvégzéséhez az szükséges, akkor így nem lényeges, hogy milyen Allat implementációt kapsz, ugyanúgy tudsz vele dolgozni.


Hülye példa, de:

// Allat.class

public void eszik() {

˙˙˙˙System.out.println("Nyam-nyam-nyam");

}


// Valahol másutt

public void etet(Allat allat) {

˙˙˙˙allat.eszik();

}


// És megintcsak máshol

akármi.etet(new Kutya());


Az etet metódusodnak nyugodtan adhattál volna macskát, vagy gőtét is, számára lényegtelen. Nem kellett külön etet metódust csinálni a kutyához, macskához, bánomisénmihez.


Dependency injection esetén nagyon hasznos, de ezt most sajna nincs időm kifejteni. Ha érdekel, guglizd meg :)

2015. márc. 22. 19:27
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!