Ключова разлика – това срещу супер в Java
Ключовите думи „това“и „супер“се използват в програмирането на Java. Тези ключови думи не могат да се използват като променливи или друго име на идентификатор. Java поддържа обектно ориентирано програмиране (OOP). Програмата или софтуерът може да се моделира с помощта на обекти. Обектите са ненаситни от използването на класове. Един стълб на ООП е наследяването. Осигурява повторно използване на кода. Класовете, които вече съществуват, са суперкласове, а производните класове са подкласове. Ключовата дума super може да се използва за препращане към обект от суперкласа. В системата има множество обекти. Ключовата дума „this“се използва за препращане към текущ обект. Ключовата разлика между this и super е, че „this“е референтна променлива, която се използва за препращане към текущия обект, докато „super“е референтна променлива, която се използва за препращане към непосредствен обект от суперклас.
Какво е това в Java?
Ключовата дума ‘this’ се използва за препращане към текущ обект. Вижте дадената Java програма.
Фигура 01: Java програма, използваща тази ключова дума
В Java има три типа променливи. Те са променливи на екземпляр, локални променливи и променливи на клас. Съгласно горната програма, клас Employee има две променливи на екземпляр. Те са идентификатор и име. Локалните променливи са променливите, принадлежащи към методи. Променливите на класа се споделят от всички обекти. Идентификаторът и името се предават на конструктора Employee. Ако програмистът пише id=id; няма да инициализира променливите на екземпляра, защото конструкторът вече има идентификатор и име. Няма стойности за променливи на екземпляр. Така че отпечатването им ще покаже нула. Когато се използва това, то се отнася до текущия обект. Следователно, даването на идентификатор и име на конструктора може да зададе променливите на екземпляра.
Ключовата дума ‘this’ може да се използва за извикване на метода на текущия клас. Обърнете се към дадената java програма.
публичен клас ThisDemo{
public static void main(String args){
Myclass myClass=нов Myclass();
myClass. B();
}
}
клас Myclass{
публично невалидно A(){
System.out.println(“A”);
}
public void B(){
System.out.printltn(“B”);
this. A();
}
}
Класът Myclass съдържа два метода. Те са метод A и B. При създаване на обект на Myclass и извикване на метод B ще отпечата B, A като изход. В метод B, след отпечатването на B има израз като this. A(). С помощта на това беше извикан методът на текущия клас.
Също така е възможно да използвате тази ключова дума за извикване на текущия конструктор на клас. Вижте дадената програма.
публичен клас ThisDemo{
public static void main(String args){
A obj=нов A(5);
}
}
клас A{
публичен A(){
System.out.println(“Конструктор A”);
}
public A(int x){
this();
System.out.println(“Параметризиран конструктор A”);
}
}
Съгласно горната програма, клас A има конструктор по подразбиране и параметризиран конструктор. При създаване на обект от A се извиква параметризираният конструктор. В параметризирания конструктор има израз като this(); Той ще извика текущия конструктор на клас, който е 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, но той е заменен от метода display подклас B. Ако програмистът иска да извика метода за показване в клас A, тогава той може да използва ключовата дума super. Вижте дадената Java програма.
Фигура 02: Java програма, използваща ключова дума super
Съгласно горната програма, клас A има променлива с име number със стойност 10. Клас B разширява A и има променлива с име number със стойност 20. Обикновено, когато създавате обект от тип B и извиквате метода за показване трябва да даде номера в подкласа, тъй като стойността на суперкласа е заменена от новия клас. Чрез използване на super.num се отпечатва стойността на номера на суперкласа.
Super() може да се използва за извикване на конструктора на суперклас. Вижте програмата по-долу.
публичен клас Главен {
public static void main(String args){
B obj=нов B();
}
}
клас A{
A(){
System.out.println(“A”);
}
}
клас B разширява A{
B(){
супер();
System.out.println(“B”);
}
}
Съгласно горната програма, клас A има конструктор A (). Клас B има конструктор B (). Клас B разширява клас A. Когато създавате обект от тип B, той ще отпечата A, B като изход. B () конструкторът има super (). Следователно първо се извиква конструкторът A и след това отива към B. Въпреки че super () не е написан, по подразбиране се извиква родителският конструктор.
Супер използването на метода е както следва.
Фигура 03: Java програма, която извиква метода на суперкласа
Съгласно горната програма, клас А има метод на показване. Клас B също има метод на показване. Клас B разширява A. При създаване на обект от тип B и извикване на метода за показване ще даде изход като A и B. В метода за показване от клас B, методът за показване на клас A се извиква с помощта на super.display(). Този метод първо отпечатва „A“. След това отпечатва „B“.
Каква е приликата между това и супер?
И двете са ключови думи в програмирането на Java
Каква е разликата между това и супер?
Това срещу Супер |
|
„Това“е референтна променлива, която се използва за препращане към текущия обект. | „Супер“е референтна променлива, която се използва за препращане към обект от непосредствен суперклас. |
Променлива на екземпляра | |
Текуща променлива на екземпляр на клас може да бъде препратена чрез това. | Променливата на екземпляр на суперклас може да бъде препратена чрез super. |
Метод на класа | |
Текущият метод на клас може да бъде извикан чрез това. | Методът Superclass може да бъде извикан с помощта на super. |
Конструктор | |
Текущият конструктор на клас може да бъде извикан чрез this(). | Конструкторът на суперклас може да бъде извикан с помощта на super(). |
Обобщение – това срещу супер в Java
Ключовите думи „това“и „супер“се използват в Java. Ключовите думи не могат да се използват като променливи или друго име на идентификатор. Привидно са еднакви, но имат разлика. Разликата между това и super е, че super е референтна променлива, която се използва за препращане към непосредствен обект от суперклас, докато това е референтна променлива, която препраща текущия обект.
Изтеглете PDF файла на това срещу супер в Java
Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версията тук: Разлика между това и супер в Java