Ključna razlika – ovo naspram super u Javi
Ključne riječi 'ovo' i 'super' koriste se u Java programiranju. Ove se ključne riječi 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 korištenjem klasa. Jedan stup OOP-a je nasljeđivanje. Omogućuje 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 referiranje na objekt superklase. Postoji više objekata u sustavu. Ključna riječ 'this' koristi se za referencu trenutnog objekta. Ključna razlika između this i super je što je 'this' referentna varijabla koja se koristi za referiranje trenutnog objekta, dok je 'super' referentna varijabla koja se koristi za referiranje neposrednog objekta superklase.
Što je ovo u Javi?
Ključna riječ 'ovo' koristi se za upućivanje na trenutni objekt. Pogledajte navedeni Java program.
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 gornjem programu, klasa Employee ima dvije instance varijable. Oni su ID i ime. Lokalne varijable su varijable koje pripadaju metodama. Varijable klase dijele svi objekti. ID i ime prosljeđuju se konstruktoru zaposlenika. Ako programer napiše id=id; neće inicijalizirati varijable instance jer konstruktor već ima id i naziv. Nema vrijednosti za varijable instance. Dakle, njihov ispis prikazat će nulu. Kada se ovo koristi, odnosi se na trenutni objekt. Stoga davanje ID-a i imena konstruktoru može postaviti varijable instance.
Ključna riječ 'ovo' može se koristiti za pozivanje trenutne metode klase. Pogledajte dati java program.
javna klasa ThisDemo{
public static void main(String args){
Myclass myClass=new Myclass();
myClass. B();
}
}
razred Moj razred{
javna praznina A(){
System.out.println(“A”);
}
javna praznina B(){
System.out.printltn(“B”);
ovo. A();
}
}
Klasa Myclass sadrži dvije metode. To su metode A i B. Prilikom stvaranja objekta Myclass i pozivanja metode B ispisat će B, A kao izlaz. U metodi B, nakon ispisa B postoji izjava kao this. A(). Koristeći ovo, pozvana je trenutna metoda klase.
Također je moguće koristiti ovu ključnu riječ za pozivanje trenutnog konstruktora klase. Pogledajte dati program.
javna klasa ThisDemo{
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(“Parametrizirani konstruktor A”);
}
}
Prema gornjem programu, klasa A ima zadani konstruktor i parametrizirani konstruktor. Prilikom kreiranja objekta od A, poziva se parametrizirani konstruktor. U parametriziranom konstruktoru postoji izjava poput ove(); Pozvat će trenutni konstruktor klase koji je A().
Što je super u Javi?
Ključna riječ 'super' povezana je s nasljeđem. Nasljeđivanje je glavni koncept objektno orijentiranog programiranja. Omogućuje korištenje svojstava i metoda već postojeće klase u novoj klasi. Već postojeća klasa poznata je kao roditeljska klasa ili superklasa. Nova klasa je poznata kao klasa dijete ili podklasa.
'Super' je referentna varijabla koja se koristi za referiranje neposrednog nadređenog objekta klase. Ključna riječ super može uputiti na varijablu instance neposredno nadređene klase ili pozvati metodu neposredne nadređene klase. Super() se koristi za pozivanje neposrednog roditeljskog konstruktora klase.
Pretpostavimo da postoje dvije klase kao A i B. Klasa A je nadklasa, a klasa B je podklasa. Obje klase A i B imaju način prikaza.
javna klasa A{
javni prazni prikaz(){
System.out.println(“A”);
}
}
javna klasa B proširuje A{
javni prazni prikaz(){
System.out.println(“B”);
}
}
Kada kreirate objekt tipa B i pozivate metodu prikaza, to će dati izlaz B. Klasa A ima metodu prikaza, ali je nadjačana metodom prikaza podklase B. Ako programer želi pozvati metodu prikaza u klasi A, tada može koristiti ključnu riječ super. Pogledajte navedeni Java program.
Slika 02: Java program koji koristi ključnu riječ super
Prema gornjem programu, klasa A ima varijablu pod nazivom broj s vrijednošću 10. Klasa B proširuje A i ima varijablu pod nazivom broj s vrijednošću 20. Općenito, kada kreirate objekt tipa B i pozivate metodu prikaza treba dati broj u podklasi jer je vrijednost superklase nadjačana novom klasom. Korištenjem super.num ispisuje se vrijednost broja superklase.
Super() se može koristiti za pozivanje konstruktora superklase. Pogledajte donji program.
javna klasa Glavni {
public static void main(String args){
B obj=novi B();
}
}
klasa A{
A(){
System.out.println(“A”);
}
}
klasa B produžuje A{
B(){
super();
System.out.println(“B”);
}
}
Prema gornjem programu, klasa A ima konstruktor A (). Klasa B ima konstruktor B (). Klasa B proširuje klasu A. Kada kreirate objekt tipa B, on će ispisati A, B kao izlaz. B () konstruktor ima super (). Stoga se prvo poziva A konstruktor, a zatim ide na B. Iako super () nije napisan, prema zadanim postavkama poziva se nadređeni konstruktor.
Super korištenje metode je kako slijedi.
Slika 03: Java program koji poziva metodu superklase
Prema gornjem programu, klasa A ima metodu prikaza. Klasa B također ima način prikaza. Klasa B proširuje A. Prilikom stvaranja objekta tipa B i pozivanja metode prikaza dat će izlaz kao A i B. U metodi prikaza klase B, metoda prikaza klase A poziva se pomoću super.display(). Ta metoda prvo ispisuje "A". Zatim ispisuje "B".
Koja je sličnost između ovoga i super?
Oboje su ključne riječi u Java programiranju
Koja je razlika između ovoga i super?
Ovo protiv Super |
|
'This' je referentna varijabla koja se koristi za referenciranje trenutnog objekta. | 'Super' je referentna varijabla koja se koristi za upućivanje neposrednog objekta superklase. |
Varijabla instance | |
Varijabla trenutne instance klase može se uputiti pomoću ovoga. | Varijabla instance superklase može se uputiti pomoću super. |
Metoda razreda | |
Trenutna metoda klase može se pozvati koristeći ovo. | Metoda superklase može se pozvati pomoću super. |
Konstruktor | |
Trenutni konstruktor klase može se pozvati pomoću this(). | Konstruktor superklase može se pozvati pomoću super(). |
Sažetak – ovo protiv super u Javi
Ključne riječi 'ovo' i 'super' koriste se u Javi. Ključne riječi ne mogu se koristiti kao varijable ili bilo koje drugo ime identifikatora. Čini se da su isti, ali imaju razliku. Razlika između ovoga i super je u tome što je super referentna varijabla koja se koristi za referiranje neposrednog objekta superklase, dok je ovo referentna varijabla koja upućuje na trenutni objekt.
Preuzmi PDF ovog protiv super u Javi
Možete preuzeti PDF verziju ovog članka i koristiti ga za izvanmrežne svrhe prema napomeni o citatu. Ovdje preuzmite PDF verziju: Razlika između ovoga i super u Javi