logo

Różnica między tym a super w Javie

The 'Ten' i ' Super' słowa kluczowe to słowa zastrzeżone, używane w innym kontekście. Poza tym Java zapewnia również Ten() I Super() konstruktory używane w kontekście konstruktora. W tej części omówimy różnice między tym a super słowem kluczowym I konstruktor this() i super(), w Jawie.

super słowo kluczowe i konstruktor super().

super słowo kluczowe

Zarezerwowane słowo kluczowe używane do wywoływania metody lub zmiennej klasy bazowej jest znane jako a Super słowo kluczowe. Nie możemy skorzystać z Super słowo kluczowe jako identyfikator . Słowo kluczowe super jest używane nie tylko w odniesieniu do instancji klasy bazowej, ale także do elementów statycznych.

dołączenie aktualizacji mysql

super() Konstruktor

The Super() służy głównie do wywoływania funkcji składowych i konstruktorów klasy bazowej.

Weźmy przykład obu Super słowo kluczowe i Super() aby zrozumieć, jak działają.

SuperPrzykład1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create Animal class which is base class of Animal class Animal{ // data member of Animal class String color = 'white'; } // create child class of Animal class Cat extends Animal{ //default constructor Cat() { // data members of the Cat class String color = 'Brown'; System.out.println('The cat is of color '+super.color); // calling parent class data member System.out.println('The cat is of color '+color); } } // create child class for Car class SuperExample1 extendsCat { // default constructor SuperExample1() { // calling base class constructor super(); System.out.println('The eyes of the cat is blue.'); } // main() method start publicstaticvoid main(String[] args) { // call default constructor of the SuperExample1 new SuperExample1(); System.out.println('Inside Main'); } } 

Wyjście:

this vs super w Javie

W metodzie main() złożyliśmy instrukcję nowy SuperPrzykład1() . Wywołuje konstruktora SuperPrzykład 1 klasa.

Wewnątrz konstruktora złożyliśmy oświadczenie Super() który wywołuje konstruktor swojej klasy nadrzędnej, tj. Kot. W konstruktorze zrobiliśmy trzy instrukcje:

  1. Zainicjuj kolor wartością 'Brązowy'.
  2. Wydrukuj element danych klasy nadrzędnej.
  3. Wydrukuj bieżący element danych klasy.

Po wykonaniu drugiej instrukcji program przeskakuje do klasy Animal, aby uzyskać dostęp do wartości jej elementów danych. Po uzyskaniu dostępu przepływ wraca do Kot konstruktor klasy i wypisuje go. Następnie wykonuje się ostatnia instrukcja i wypisuje wartość zmiennych bieżącej klasy.

Po wykonaniu ostatniego oświadczenia ww Kot class, przepływ wraca do konstruktora klasy SuperPrzykład 1 i wykonuje pozostałe instrukcje.

ważny

Po zakończeniu realizacji ww SuperPrzykład1() , przepływ wraca do metody main() i wykonuje pozostałe instrukcje.

Uwaga: Aby użyć super(), musimy upewnić się, że powinna to być pierwsza instrukcja w konstruktorze klasy. Możemy go używać do odwoływania się tylko do konstruktora klasy nadrzędnej.

this słowo kluczowe i konstruktor this().

to słowo kluczowe

Jest to zastrzeżone słowo kluczowe w Javie używane w odniesieniu do bieżącego obiektu klasy. Jest to zmienna referencyjna, poprzez którą wywoływana jest metoda. Inne zastosowania tego słowa kluczowego to:

  • Możemy go użyć do odniesienia się do zmiennej instancji bieżącej klasy.
  • Możemy go użyć do wywołania metody bieżącej klasy (domyślnie).
  • Możemy przekazać go jako argument w wywołaniach metody i konstruktora.
  • Możemy go również użyć do zwrócenia bieżącej instancji klasy z metody.

this() Konstruktor

Konstruktor służy do wywoływania jednego konstruktora z drugiego konstruktora tej samej klasy. Weźmy przykład obu Ten słowo kluczowe i Ten() aby zrozumieć, jak działają.

TenPrzykład1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create ThisExample1 class to understand the working of this() and this class ThisExample1 { // initialize instance and static variable int x = 5; staticinty = 10; // default constructor of class ThisExample1 ThisExample1() { // invoking current class constructor this(5); System.out.println('We are insie of the default constructor.'); System.out.println('The value of x = '+x); } ThisExample1(int x) { this.x = x; // override value of the current class instance variable System.out.println('We are inside of the parameterized constructor.'); System.out.println('The value of y = '+y); } publicstaticvoid main(String[] args) { // invoking constructor of the current class new ThisExample1(); System.out.println('Inside Main'); } } 

Wyjście:

this vs super w Javie

Różnica między tym a super słowem kluczowym

Poniższa tabela opisuje kluczową różnicę między tym a super:

Ten Super
Bieżąca instancja klasy jest reprezentowana przez to słowo kluczowe. Bieżąca instancja klasy nadrzędnej jest reprezentowana przez słowo kluczowe super.
Aby wywołać domyślny konstruktor bieżącej klasy, możemy użyć tego słowa kluczowego. Aby wywołać domyślny konstruktor klasy nadrzędnej, możemy użyć słowa kluczowego super.
Można się do niego odwoływać w kontekście statycznym. Oznacza to, że można go wywołać z kontekstu statycznego. Nie można się do niego odwoływać w kontekście statycznym. Oznacza to, że nie można go wywołać z kontekstu statycznego.
Możemy go użyć, aby uzyskać dostęp tylko do bieżących składowych danych klasy i funkcji składowych. Możemy go użyć, aby uzyskać dostęp do elementów danych i funkcji składowych klasy nadrzędnej.

Różnica między konstruktorem this() i super().

Ten() Super()
Konstruktor this() odwołuje się do bieżącego obiektu klasy. Konstruktor super() odwołuje się do bezpośredniego obiektu klasy nadrzędnej.
Służy do wywoływania metody bieżącej klasy. Służy do wywoływania metod klasy nadrzędnej.
Można go używać w dowolnym miejscu sparametryzowanego konstruktora. Jest to zawsze pierwsza linia konstruktora klasy potomnej.
Służy do wywoływania wersji nadklasowej nadpisanej metody. Służy do wywoływania wersji nadklasowej nadpisanej metody.