Klíčový rozdíl - to je super v Javě
Klíčová slova „this“a „super“se používají v programování Java. Tato klíčová slova nelze použít jako proměnné ani jako jiný název identifikátoru. Java podporuje objektově orientované programování (OOP). Program nebo software lze modelovat pomocí objektů. Objekty jsou izolovány pomocí tříd. Jedním pilířem OOP je dědičnost. Poskytuje opětovné použití kódu. Třídy, které již existují, jsou nadtřídy a odvozené třídy jsou podtřídy. Klíčové slovo super lze použít k označení objektu nadtřídy. V systému je více objektů. Klíčové slovo „toto“se používá k označení aktuálního objektu. Klíčovým rozdílem mezi tímto a super je „this“je referenční proměnná, která se používá k odkazu na aktuální objekt, zatímco „super“je referenční proměnná, která se používá k označení okamžitého objektu nadtřídy.
OBSAH
1. Přehled a klíčový rozdíl
2. Co je to v Javě
3. Co je super v Javě
4. Podobnosti mezi tím a super v Javě
5. Porovnání vedle sebe - toto vs. super v Javě ve formě tabulky
6. Shrnutí
Co je to v Javě?
Klíčové slovo „toto“se používá k označení aktuálního objektu. Viz daný program Java.
Obrázek 01: Program Java využívající toto klíčové slovo
V Javě existují tři typy proměnných. Jsou to proměnné instance, místní proměnné a proměnné třídy. Podle výše uvedeného programu má třída Zaměstnanec dvě proměnné instance. Jsou to id a jméno. Místní proměnné jsou proměnné patřící k metodám. Proměnné třídy jsou sdíleny všemi objekty. ID a jméno jsou předány konstruktoru zaměstnance. Pokud programátor píše id = id; nebude inicializovat proměnné instance, protože konstruktor již má ID a název. Neexistují žádné hodnoty například pro proměnné. Jejich tisk tedy bude mít hodnotu null. Při použití odkazuje na aktuální objekt. Proto zadáním id a názvu konstruktoru lze nastavit proměnné instance.
Klíčové slovo „this“lze použít k vyvolání aktuální metody třídy. Viz daný program Java.
veřejná třída ThisDemo {
public static void main (String args) {
Myclass myClass = new Myclass ();
myClass. B ();
}
}
třída Myclass {
public void A () {
System.out.println („A“);
}
public void B () {
System.out.prinltn („B“);
this. A ();
}
}
Třída Myclass obsahuje dvě metody. Jsou to metoda A a B. Při vytváření objektu Myclass a vyvolání metody B vytiskne B, A jako výstup. V metodě B je po vytištění B prohlášení jako this. A (). Pomocí toho byla vyvolána metoda aktuální třídy.
Toto klíčové slovo je také možné použít k vyvolání aktuálního konstruktoru třídy. Viz daný program.
veřejná třída ThisDemo {
public static void main (String args) {
A obj = nový A (5);
}
}
třída A {
public A () {
System.out.println („Konstruktor A“);
}
public A (int x) {
tento();
System.out.println („Parametrizovaný konstruktor A“);
}
}
Podle výše uvedeného programu má třída A výchozí konstruktor a parametrizovaný konstruktor. Při vytváření objektu A se volá parametrizovaný konstruktor. V parametrizovaném konstruktoru existuje příkaz jako this (); Zavolá aktuální konstruktor třídy, který je A ().
Co je super v Javě?
Klíčové slovo „super“souvisí s dědičností. Dědičnost je hlavní koncept objektově orientovaného programování. Umožňuje použít vlastnosti a metody již existující třídy k nové třídě. Již existující třída je známá jako nadřazená třída nebo nadtřída. Nová třída je známá jako podřízená třída nebo podtřída.
„Super“je referenční proměnná, která se používá k odkazu na objekt bezprostřední nadřazené třídy. Klíčové slovo super může odkazovat na proměnnou instance okamžité nadřazené třídy nebo vyvolat metodu okamžité nadřazené třídy. Super () se používá k vyvolání konstruktoru okamžité nadřazené třídy.
Předpokládejme, že existují dvě třídy jako A a B. Třída A je nadtřída a třída B je podtřída. Třída A, B mají oba způsob zobrazení.
veřejná třída A {
public void display () {
System.out.println („A“);
}
}
veřejná třída B rozšiřuje A {
public void display () {
System.out.println („B“);
}
}
Při vytváření objektu typu B a volání metody zobrazení dá výstup B. třída A má metodu zobrazení, ale je přepsána metodou zobrazení podtřídy B. Pokud chce programátor zavolat metodu zobrazení ve třídě A, může použít klíčové slovo super. Viz daný program Java.
Obrázek 02: Program Java využívající klíčové slovo super
Podle výše uvedeného programu má třída A proměnnou s názvem číslo s hodnotou 10. Třída B rozšiřuje A a má proměnnou s názvem číslo s hodnotou 20. Obecně platí, že při vytváření objektu typu B a volání metody zobrazení by mělo být číslo uvedeno v podtřídy, protože hodnota nadtřídy je přepsána novou třídou. Použitím super.num se vytiskne hodnota čísla nadtřídy.
Super () lze použít k volání konstruktoru nadtřídy. Viz níže uvedený program.
public class Main {
public static void main (String args) {
B obj = nový B ();
}
}
třída A {
A(){
System.out.println („A“);
}
}
třída B rozšiřuje A {
B () {
super ();
System.out.println („B“);
}
}
Podle výše uvedeného programu má třída A konstruktor A (). Třída B má konstruktor B (). Třída B rozšiřuje třídu A. Při vytváření objektu typu B vytiskne A, B jako výstup. Konstruktor B () má super (). Proto je nejprve vyvolán konstruktor A a poté přejde na B. Přestože není napsán super (), ve výchozím nastavení se volá nadřazený konstruktor.
Super použití metody je následující.
Obrázek 03: Program Java, který vyvolává metodu nadtřídy
Podle výše uvedeného programu má třída A způsob zobrazení. Třída B má také způsob zobrazení. Třída B rozšiřuje A. Při vytváření objektu typu B a volání metody zobrazení bude výstup poskytován jako A a B. V metodě zobrazení třídy B je metoda zobrazení třídy A volána pomocí super.display (). Tato metoda nejprve vytiskne „A“. Poté vytiskne „B“.
Jaká je podobnost mezi tímto a super?
Obě jsou klíčová slova v programování Java
Jaký je rozdíl mezi tímto a super?
Rozdílný článek uprostřed před tabulkou
Toto vs Super |
|
„Toto“je referenční proměnná, která se používá k odkazu na aktuální objekt. | „Super“je referenční proměnná, která se používá k označení okamžitého objektu nadtřídy. |
Proměnná instance | |
Pomocí této lze odkazovat na aktuální proměnnou instance třídy. | Proměnnou instance nadtřídy lze odkazovat pomocí super. |
Metoda třídy | |
Metodu aktuální třídy lze vyvolat pomocí tohoto. | Metodu nadtřídy lze vyvolat pomocí super. |
Konstruktor | |
Konstruktor aktuální třídy lze vyvolat pomocí this (). | Konstruktor nadtřídy lze vyvolat pomocí super (). |
Shrnutí - toto vs super v Javě
Klíčová slova „this“a „super“se používají v Javě. Klíčová slova nelze použít jako proměnné nebo jiný název identifikátoru. Zdá se, že jsou stejní, ale mají rozdíl. Rozdíl mezi tímto a super je v tom, že super je referenční proměnná, která se používá k označení okamžitého objektu nadtřídy, zatímco toto je referenční proměnná, která odkazuje na aktuální objekt.
Stáhněte si PDF tohoto vs super v Javě
Můžete si stáhnout verzi tohoto článku ve formátu PDF a použít jej pro offline účely podle citace. Stáhněte si verzi PDF zde: Rozdíl mezi touto a super v Javě