Razlika između ovoga i super u Javi

Sadržaj:

Razlika između ovoga i super u Javi
Razlika između ovoga i super u Javi

Video: Razlika između ovoga i super u Javi

Video: Razlika između ovoga i super u Javi
Video: C++ Tutorial 7: Dinamičko alociranje i brisanje memorije 2024, Juli
Anonim

Ključna razlika – ovo u odnosu na super u Javi

Ključne riječi 'ovo' i 'super' se koriste u Java programiranju. Ove ključne riječi se ne mogu koristiti kao varijable ili bilo koje drugo ime identifikatora. Java podržava objektno orijentirano programiranje (OOP). Program ili softver se mogu modelirati pomoću objekata. Objekti su nezasitni koristeći klase. Jedan od stubova OOP-a je nasledstvo. Pruža mogućnost ponovne upotrebe koda. Klase koje već postoje su superklase, a izvedene klase su podklase. Ključna riječ super može se koristiti za upućivanje na objekt superklase. Postoji više objekata u sistemu. Ključna riječ 'this' se koristi za upućivanje na trenutni objekt. Ključna razlika između ovog i super je 'ovo' je referentna varijabla koja se koristi za upućivanje na trenutni objekt dok je 'super' referentna varijabla koja se koristi za upućivanje neposrednog objekta superklase.

Šta je ovo na Javi?

Ključna riječ 'ovo' se koristi za upućivanje na trenutni objekt. Pogledajte dati Java program.

Razlika između ovog i super u Javi
Razlika između ovog i super u Javi

Slika 01: Java program koji koristi ovu ključnu riječ

U Javi postoje tri vrste varijabli. To su varijable instance, lokalne varijable i varijable klase. Prema gore navedenom programu, klasa Employee ima dvije varijable instance. Oni su id i ime. Lokalne varijable su varijable koje pripadaju metodama. Varijable klase dijele svi objekti. ID i ime se prosljeđuju konstruktoru Employee. Ako programer napiše id=id; neće inicijalizirati varijable instance jer konstruktor već ima id i ime. Ne postoje vrijednosti za varijable instance. Dakle, njihovo štampanje će prikazati null. Kada se ovo koristi, odnosi se na trenutni objekt. Stoga, davanje ID-a i imena konstruktoru može postaviti varijable instance.

Ključna riječ 'this' može se koristiti za pozivanje metode trenutne klase. Pogledajte dati java program.

javna klasa OvaDemo{

public static void main(String args){

Myclass myClass=new Myclass();

myClass. B();

}

}

class Myclass{

javno poništeno A(){

System.out.println(“A”);

}

javno poništeno B(){

System.out.printltn(“B”);

this. A();

}

}

Klasa Myclass sadrži dvije metode. To su metode A i B. Prilikom kreiranja objekta Myclass i pozivanja metode B će ispisati B, A kao izlaz. U metodi B, nakon ispisa B postoji izjava kao this. A(). Koristeći ovo, pozvana je trenutna metoda klase.

Ovu ključnu riječ je također moguće koristiti za pozivanje trenutnog konstruktora klase. Pogledajte dati program.

javna klasa OvaDemo{

public static void main(String args){

A obj=novi A(5);

}

}

klasa A{

javno A(){

System.out.println(“Konstruktor A”);

}

javno A(int x){

ovo();

System.out.println(“Parametrizovani konstruktor A”);

}

}

Prema gore navedenom programu, klasa A ima zadani konstruktor i parametrizirani konstruktor. Prilikom kreiranja objekta A, poziva se parametrizirani konstruktor. U parametrizovanom konstruktoru postoji izjava poput ove(); Pozvaće trenutni konstruktor klase koji je A().

Šta je super u Javi?

Ključna riječ 'super' se odnosi na nasljeđe. Nasljeđivanje je glavni koncept objektno orijentiranog programiranja. Omogućava korištenje svojstava i metoda već postojeće klase u novoj klasi. Već postojeća klasa je poznata kao roditeljska klasa ili superklasa. Nova klasa je poznata kao podklasa ili podklasa.

'Super' je referentna varijabla koja se koristi za upućivanje neposrednog objekta roditeljske klase. Ključna riječ super može upućivati na neposrednu varijablu instance roditeljske klase ili pozvati metodu neposredne roditeljske klase. Super() se koristi za pozivanje neposrednog konstruktora roditeljske klase.

Pretpostavimo da postoje dvije klase kao A i B. Klasa A je nadklasa, a klasa B je podklasa. Obje klase A, B imaju metod prikaza.

javna klasa A{

javni nevažeći prikaz(){

System.out.println(“A”);

}

}

javna klasa B proširuje se A{

javni nevažeći prikaz(){

System.out.println(“B”);

}

}

Prilikom kreiranja objekta tipa B i pozivanja metode display, to će dati izlaz B. klasa A ima metodu prikaza, ali je nadjačana metodom prikaza podklase B. Ako programer želi da pozove metod prikaza u klasi A, onda može da koristi ključnu reč super. Pogledajte dati Java program.

Razlika između ovog i super na Javi_slika 02
Razlika između ovog i super na Javi_slika 02

Slika 02: Java program koji koristi super ključnu riječ

Prema gore navedenom programu, klasa A ima promenljivu pod nazivom broj sa vrednošću 10. Klasa B proširuje A i ima promenljivu pod nazivom broj sa vrednošću 20. Generalno, kada se kreira objekat tipa B i poziva metoda prikaza treba dati broj u potklasi jer je vrijednost nadklase nadjačana od strane nove klase. Korištenjem super.num, ispisuje se vrijednost broja superklase.

Super() se može koristiti za pozivanje konstruktora superklase. Pogledajte program ispod.

javna klasa Glavna {

public static void main(String args){

B obj=new B();

}

}

klasa A{

A(){

System.out.println(“A”);

}

}

klasa B proširuje se A{

B(){

super();

System.out.println(“B”);

}

}

Prema gore navedenom programu, klasa A ima konstruktor A (). Klasa B ima konstruktor B (). Klasa B proširuje klasu A. Prilikom kreiranja objekta tipa B, ona će ispisati A, B kao izlaz. B () konstruktor ima super (). Stoga se prvo poziva A konstruktor, a zatim ide na B. Iako super () nije napisano, po defaultu se poziva roditeljski konstruktor.

Super koji koristi metodu je kako slijedi.

Ključna razlika između ovog i super u Javi
Ključna razlika između ovog i super u Javi

Slika 03: Java program koji poziva metodu superklase

Prema gore navedenom programu, klasa A ima metod prikaza. Klasa B takođe ima metod prikaza. Klasa B proširuje A. Prilikom kreiranja objekta tipa B i pozivanja metode prikaza dat će izlaz kao A i B. U metodi prikaza klase B, metoda prikaza klase A se poziva pomoću super.display(). Taj metod prvo ispisuje "A". Zatim ispisuje “B”.

Koja je sličnost između ovoga i super?

Obje su ključne riječi u Java programiranju

Koja je razlika između ovoga i super?

Ovo vs Super

'ovo' je referentna varijabla koja se koristi za upućivanje na trenutni objekt. 'Super' je referentna varijabla koja se koristi za upućivanje neposrednog objekta superklase.
Varijabla instance
Varijabla trenutne instance klase može se uputiti koristeći ovo. Varijabla instance Superklase se može uputiti korištenjem super.
Metoda klase
Trenutna metoda klase može se pozvati koristeći ovo. Superklasa metoda se može pozvati korištenjem super.
Constructor
Trenutni konstruktor klase može se pozvati pomoću ovog(). Konstruktor superklase se može pozvati pomoću super().

Sažetak – ovo naspram super u Javi

Ključne riječi 'ovo' i 'super' se koriste u Javi. Ključne riječi se ne mogu koristiti kao varijable ili bilo koje drugo ime identifikatora. Čini se da su isti, ali imaju razliku. Razlika između ovog i super je u tome što je super referentna varijabla koja se koristi za upućivanje neposrednog objekta superklase dok je ovo referentna varijabla koja upućuje na trenutni objekt.

Preuzmite PDF ovog vs super u Javi

Možete preuzeti PDF verziju ovog članka i koristiti ga za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje: Razlika između ovog i super u Javi

Preporučuje se: