Kulcskülönbség – öröklődés vs interfész Java-ban
A Java a Sun Microsystems által fejlesztett programozási nyelv. A Java különféle alkalmazások fejlesztésére használható. Ez egy többparadigmás nyelv, amely támogatja az objektumorientált, strukturált stb. nyelvet. A Java fő előnye, hogy támogatja az objektumorientált programozást (OOP). A programozó létrehozhat osztályokat és objektumokat. Az OOP-nak négy pillére van. Ezek az öröklődés, a polimorfizmus, az absztrakció és a tokozás. Az öröklődés és az interfészek az OOP-hoz kapcsolódnak. A legfontosabb különbség az öröklődés és az interfész között az, hogy az öröklődés új osztályok származtatását jelenti a meglévő osztályokból, az interfész pedig az absztrakt osztályok és a többszörös öröklődés megvalósítását.
Mi az öröklődés a Java nyelvben?
Az öröklődés révén a kód újra használható. Az öröklődés segít egy meglévő osztály attribútumainak és metódusainak újrafelhasználásában. Az új osztály származtatásának mechanizmusát a régi osztály használatával öröklődésnek nevezzük. A régi osztályt szülő osztálynak vagy szuperosztálynak nevezik. A származtatott osztályt gyermekosztálynak vagy alosztálynak nevezik.
A Java öröklődés szintaxisa a következő.
class subclass_name kiterjeszti superclass_name {
változódeklaráció;
módszer deklaráció;
}
Az öröklődés fogalma a következő példával magyarázható. Tételezzük fel, hogy van egy A nevű osztály a következőképpen.
A nyilvános osztály{
public void summa(){
System.out.println("Összeg");
}
}
Ha új metódust akarunk hozzáadni a meglévő osztály megváltoztatása nélkül, akkor azt a következőképpen tehetjük meg.
nyilvános B osztály{
public void sub(){
System.out.println(“Sub”);
}
}
A programozó használhat öröklést az A osztályú összeg() használatához.
public B osztály kiterjeszti az A osztályt{
public void sub(){
System.out.println(“Sub”);
}
}
A főfüggvényben lehetőség van egy B objektum létrehozására és a sub() meghívására, amely a B osztályba tartozik, és a sum(), amely az A osztályba tartozik, öröklődés segítségével.
public static void main(String args){
B obj=új B();
obj.sub();
obj.sum();
}
Az öröklődésnek különböző típusai vannak. Ezek egyszeres öröklődések, többszörös öröklődések, többszintű öröklődések és hierarchikus öröklődések. Az egyszeri öröklődésben egy alaposztály és egy származtatott osztály van. A többszintű öröklődésben három osztály van, nevezetesen az alaposztály, a köztes osztály és a származtatott osztály. A köztes osztály örökli az alaposztályt, a származtatott osztály pedig a köztes osztálytól. A hierarchikus öröklődésben egy alaposztály és sok származtatott osztály van. Létezik egy speciális típus a hibrid öröklődés néven. Ez két vagy több típusú öröklődés kombinációja.
01. ábra: Öröklődés
A többszörös öröklődésben sok alaposztály és egy származtatott osztály található. Tegyük fel, hogy az A és B osztály az alaposztály. A C osztály a származtatott osztály. Ha mind az A, mind a B osztályban ugyanaz a metódus van, és a programozó ezt a metódust a származtatott osztályból hívja meg, akkor ez kétértelműségi problémát okoz. Két osztály öröklése fordítási idejű hibát okozhat. Ezért a Java nem támogatja a többszörös öröklődést. A probléma megoldására interfész használható.
Mi az interfész a Java nyelvben?
Az absztrakció a megvalósítás részleteinek elrejtésének folyamata, és csak a funkciókat jeleníti meg a felhasználó számára. Az absztrakciót absztrakt osztályok vagy interfészek segítségével lehet elérni. Az absztrakt módszer egy megvalósítás nélküli módszer. A legalább egy absztrakt metódussal rendelkező osztály absztrakt osztály. Példa egy absztrakt osztályra a következő.
absztrakt osztály A{
absztrakt void összeg();
}
Tegyük fel, hogy két absztrakt osztály van, mint A és B. Az A és B absztrakt metódusainak megvalósításához egy új C osztály jön létre. Ezután a C osztálynak ki kell terjesztenie az A-t és a B-t is. A Java azonban nem támogatja a többszörös öröklődést. Ezért interfészt kell használni. Az interfészek használhatók metódusok deklarálására, de nem lehet metódusokat definiálni. Interfészek segítségével objektumot nem lehet létrehozni. A C osztálynak meg kell valósítania az A és B interfész összes metódust.
interfész A{
void sum();
}
interfész B{
void sub();
}
C osztályú eszközök A, B{
public void summa(){
System.out.println("Összegzés");
}
public void sub(){
System.out.println(“Kivonás”);
}
}
Most a főprogramban lehetőség van egy C objektum létrehozására és mindkét metódus meghívására.
public static void main (String args) {
C obj=új C();
obj.sum();
obj.sub();
}
Tehát az interfészek többszörös öröklődés megvalósítására is használhatók.
Az interfészek másik felhasználási módja az, hogy biztonságot nyújt. Lásd az alábbi kódot.
interfész A {
érvénytelen összeg ();
}
B osztály valósítja meg az A-t {
nyilvános érvénytelen összeg () {
System.out.println("Összegzés");
}
public void szorzás () {
System.out.println("Szorzás");
}
}
A B objektumának létrehozásakor mindkét metódus meghívható összeg () és szorzás (). Ha a programozó korlátozni akarja a szorzás () funkciót, akkor ez a következőképpen lehetséges.
public static void main(String args){
A obj=new B();
obj.sum();
}
A obj=new B(); objektumot fog létrehozni. A típusú, és a memória B-ként van lefoglalva. A sum() meghívható, de nem hajtható végre a multiply(). Ez a korlátozás interfészek használatával történik.
Milyen hasonlóságok vannak az öröklődés és az interfész között a Java nyelvben?
- Mindkét fogalom kapcsolódik az objektum-orientált programozáshoz
- Mindkettő IS-A kapcsolatot jelent.
Mi a különbség az öröklődés és az interfész között Javaban?
öröklődés vs interfész Java-ban |
|
Az öröklődés egy OOP-koncepció, amellyel új osztályokat lehet származtatni a meglévő osztályokból. | Az interfész az OOP-ban az absztrakció és a többszörös öröklődés megvalósítására szolgáló mechanizmus. |
Használat | |
Az öröklődés biztosítja a kód újrafelhasználását. | Az interfészek absztrakciót és többszörös öröklődést biztosítanak. |
Összefoglaló – Öröklődés vs interfész Java-ban
A Java egy többparadigmás programozási nyelv, amely támogatja az objektumorientált programozást. Az öröklődés és az interfészek az objektum-orientált programozáshoz kapcsolódnak. Az öröklődés és az interfész közötti különbség az, hogy az öröklődés új osztályok származtatását jelenti a meglévő osztályokból, az interfészek pedig az absztrakt osztályok és a többszörös öröklődés megvalósítását.
Töltse le az Inheritance vs Interface PDF verzióját Java nyelven
Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF-verziót innen: Különbség az öröklődés és az interfész között Java-ban