Разлика между това и супер в Java

Съдържание:

Разлика между това и супер в Java
Разлика между това и супер в Java

Видео: Разлика между това и супер в Java

Видео: Разлика между това и супер в Java
Видео: 1001364 2024, Декември
Anonim

Ключова разлика - това срещу супер в Java

Ключовите думи „това“и „супер“се използват в програмирането на Java. Тези ключови думи не могат да се използват като променливи или друго име на идентификатор. Java поддържа обектно ориентирано програмиране (OOP). Програмата или софтуерът могат да бъдат моделирани с помощта на обекти. Обектите се насищат с помощта на класове. Един от стълбовете на ООП е наследяването. Той осигурява повторна употреба на кода. Класовете, които вече съществуват, са суперкласове, а получените класове са подкласове. Ключовата дума super може да се използва за препращане към обект от суперкласа. В системата има множество обекти. Ключовата дума 'this' се използва за препращане към текущ обект. Ключовата разлика между това и супер е „това“е референтна променлива, която се използва за препращане към текущия обект, докато „супер“е референтна променлива, която се използва за препращане на непосредствен обект от суперклас.

СЪДЪРЖАНИЕ

1. Общ преглед и ключова разлика

2. Какво е това в Java

3. Какво е супер в Java

4. Прилики между това и супер в Java

5. Сравнение едно до друго - това срещу супер в Java в таблична форма

6. Резюме

Какво е това в Java?

Ключовата дума 'this' се използва за препратка към текущ обект. Вижте дадената програма Java.

Разлика между това и супер в Java
Разлика между това и супер в Java

Фигура 01: Програма Java, използваща тази ключова дума

В Java има три типа променливи. Те са променливи на екземпляра, локални променливи и променливи на класа. Съгласно горната програма, клас Служител има две променливи на екземпляра. Те са идентификационни данни и име. Локалните променливи са променливите, принадлежащи на методи. Променливите на класа се споделят от всички обекти. Идентификаторът и името се предават на конструктора на служител. Ако програмистът напише id = id; няма да инициализира променливите на екземпляра, защото конструкторът вече има идентификатор и име. Няма стойности за примерни променливи. Така че, отпечатването им ще покаже нула. Когато се използва това, то се отнася до текущия обект. Следователно, даването на id и име на конструктора може да зададе променливите на екземпляра.

Ключовата дума 'this' може да се използва за извикване на текущия метод на класа. Обърнете се към дадената java програма.

публичен клас ThisDemo {

публична статична void main (String args) {

Myclass myClass = нов Myclass ();

myClass. B ();

}

}

клас Myclass {

публична празнота A () {

System.out.println („A“);

}

публична невалидна B () {

System.out.prinltn („B“);

това е();

}

}

Класът Myclass съдържа два метода. Те са метод A и B. При създаване на обект от Myclass и извикване на метода B ще се отпечата B, A като изход. В метод B, след отпечатване на B има изявление като това. A (). Използвайки това, беше извикан текущият метод на класа.

Също така е възможно да използвате тази ключова дума, за да извикате конструктора на текущия клас. Обърнете се към дадената програма.

публичен клас ThisDemo {

публична статична void main (String args) {

A obj = нов A (5);

}

}

клас А {

публично A () {

System.out.println („Конструктор A“);

}

публично A (int x) {

това();

System.out.println („Параметризиран конструктор A“);

}

}

Според горната програма клас А има конструктор по подразбиране и параметризиран конструктор. Когато се създава обект от A, се извиква параметризираният конструктор. В параметризирания конструктор има изявление като това (); Той ще извика конструктора на текущия клас, който е A ().

Какво е супер в Java?

Ключовата дума „супер“е свързана с наследяване. Наследяването е основна концепция на обектно-ориентираното програмиране. Тя позволява използването на свойствата и методите на вече съществуващия клас в нов клас. Вече съществуващият клас е известен като родителски клас или суперклас. Новият клас е известен като дъщерния клас или подклас.

'Super' е референтна променлива, която се използва за препращане на непосредствения обект на родителски клас. Ключовата дума super може да препраща променлива на екземпляр на непосредствен родителски клас или да извиква метод на непосредствен родителски клас. Super () се използва за извикване на непосредствен конструктор на родителски клас.

Да приемем, че има два класа като A и B. Клас A е суперкласът, а клас B е подкласът. Клас A, B и двата имат метод на показване.

публичен клас A {

публично показване на невалидни () {

System.out.println („A“);

}

}

публичен клас B разширява A {

публично показване на невалидни () {

System.out.println („B“);

}

}

Когато създавате обект от тип B и извиквате метода display, той ще даде изхода B. клас A има метода display, но той е заменен от метода за показване на подклас B. Ако програмистът иска да извика метода на показване в клас А, тогава той може да използва супер ключовата дума. Вижте дадената програма Java.

Разлика между това и супер в Java Figure 02
Разлика между това и супер в Java Figure 02

Фигура 02: Програма Java, използваща супер ключова дума

Според горната програма клас A има променлива с име номер със стойност 10. Клас B разширява A и има променлива с име номер със стойност 20. Като цяло, при създаване на обект от тип B и извикване на метода на дисплея трябва да се даде числото в подкласа, защото стойността на суперкласа е заменена от новия клас. Чрез използването на super.num се отпечатва стойността на номера на суперкласа.

Super () може да се използва за извикване на конструктора на суперклас. Вижте програмата по-долу.

публичен клас Main {

публична статична void main (String args) {

B obj = ново B ();

}

}

клас А {

A () {

System.out.println („A“);

}

}

клас B разширява A {

Б () {

супер ();

System.out.println („B“);

}

}

Според горната програма клас A има конструктор A (). Клас B има конструктора B (). Клас B разширява клас A. Когато създавате обект от тип B, той ще отпечата A, B като изход. Конструкторът B () има super (). Следователно, първо се извиква конструктор A и след това отива към B. Въпреки че super () не е написан, по подразбиране се извиква родителският конструктор.

Супер използвайки метода е както следва.

Ключова разлика между това и супер в Java
Ключова разлика между това и супер в Java

Фигура 03: Програма Java, която извиква метода на суперклас

Според горната програма клас А има метод на показване. Клас B също има метод на показване. Клас B се разширява A. Когато създавате обект от тип B и извиквате метода на дисплея, ще получите изход като A и B. В метода на дисплей клас B методът на дисплей клас A се извиква с помощта на super.display (). Този метод отпечатва първо „A“. След това отпечатва “B”.

Каква е приликата между това и супер?

И двете са ключови думи в програмирането на Java

Каква е разликата между това и супер?

Различна статия Средна преди таблица

Това срещу Супер

'Това' е референтна променлива, която се използва за препращане към текущия обект. „Супер“е референтна променлива, която се използва за препращане на непосредствен обект от суперклас.
Променлива на инстанцията
Текуща променлива на инстанция на клас може да бъде препратена с помощта на това Променливата на екземпляра на Superclass може да бъде препратена с помощта на super.
Метод на класа
Текущият метод на класа може да бъде извикан с помощта на това. Методът Superclass може да бъде извикан с помощта на super.
Конструктор
Текущият конструктор на клас може да бъде извикан с помощта на this (). Конструктор на суперклас може да бъде извикан с помощта на super ().

Резюме - това срещу супер в Java

Ключовите думи „това“и „супер“се използват в Java. Ключовите думи не могат да се използват като променливи или друго име на идентификатор. Изглежда, че са еднакви, но имат разлика. Разликата между това и super е, че super е референтна променлива, която се използва за препращане на непосредствен обект от суперклас, докато това е референтна променлива, която препраща текущия обект.

Изтеглете PDF файла на този срещу супер в Java

Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката към цитата. Моля, изтеглете PDF версията тук: Разлика между тази и супер в Java

Препоръчано: