Ключевое отличие - это против супер в Java
Ключевые слова this и super используются в программировании на Java. Эти ключевые слова нельзя использовать в качестве переменных или любого другого имени идентификатора. Java поддерживает объектно-ориентированное программирование (ООП). Программа или программное обеспечение можно моделировать с помощью объектов. Объекты ненасытны в использовании классов. Один из столпов ООП - это наследование. Это обеспечивает возможность повторного использования кода. Уже существующие классы являются суперклассами, а производные классы - подклассами. Ключевое слово super может использоваться для ссылки на объект суперкласса. В системе несколько объектов. Ключевое слово this используется для ссылки на текущий объект. Ключевое различие между this и super заключается в том, что this - это ссылочная переменная, которая используется для ссылки на текущий объект, а super - это ссылочная переменная, которая используется для ссылки на непосредственный объект суперкласса.
СОДЕРЖАНИЕ
1. Обзор и основные отличия
2. Что это такое в Java
3. Что такое super в Java
4. Сходства между this и super в Java
5. Сравнение бок о бок - this vs super в Java в табличной форме
6. Резюме
Что это в Java?
Ключевое слово this используется для ссылки на текущий объект. Обратитесь к данной программе на Java.
Рисунок 01: Программа Java, использующая это ключевое слово
В Java есть три типа переменных. Это переменные экземпляра, локальные переменные и переменные класса. Согласно приведенной выше программе, класс Employee имеет две переменные экземпляра. Это идентификатор и имя. Локальные переменные - это переменные, принадлежащие методам. Переменные класса используются всеми объектами. Идентификатор и имя передаются конструктору Employee. Если программист пишет id = id; он не будет инициализировать переменные экземпляра, потому что у конструктора уже есть идентификатор и имя. Для переменных экземпляра нет значений. Таким образом, при их печати будет отображаться null. При использовании это относится к текущему объекту. Следовательно, указание идентификатора и имени конструктору может установить переменные экземпляра.
Ключевое слово this можно использовать для вызова метода текущего класса. Обратитесь к данной java-программе.
public class ThisDemo {
public static void main (String args) {
Myclass myClass = новый Myclass ();
myClass. B ();
}
}
class Myclass {
public void A () {
System.out.println («А»);
}
public void B () {
System.out.prinltn («Б»);
это();
}
}
Класс Myclass содержит два метода. Это методы A и B. При создании объекта Myclass и вызове метода B будет напечатан B, A в качестве вывода. В методе B после печати B есть оператор this. A (). Используя это, был вызван метод текущего класса.
Также можно использовать это ключевое слово для вызова конструктора текущего класса. Обратитесь к данной программе.
public class ThisDemo {
public static void main (String args) {
A obj = новый A (5);
}
}
class A {
public A () {
System.out.println («Конструктор A»);
}
public A (int x) {
этот();
System.out.println («Параметризованный конструктор A»);
}
}
Согласно приведенной выше программе, класс A имеет конструктор по умолчанию и параметризованный конструктор. При создании объекта A вызывается параметризованный конструктор. В параметризованном конструкторе есть такой оператор (); Он вызовет текущий конструктор класса A ().
Что такое супер в Java?
Ключевое слово «супер» относится к наследованию. Наследование - это основная концепция объектно-ориентированного программирования. Это позволяет использовать свойства и методы уже существующего класса для нового класса. Уже существующий класс известен как родительский класс или суперкласс. Новый класс известен как дочерний класс или подкласс.
«Super» - это ссылочная переменная, которая используется для ссылки на непосредственный объект родительского класса. Ключевое слово super может ссылаться на непосредственную переменную экземпляра родительского класса или вызывать непосредственный метод родительского класса. Super () используется для непосредственного вызова конструктора родительского класса.
Предположим, что существует два класса: A и B. Класс A является суперклассом, а класс B - подклассом. Оба класса A, B имеют метод отображения.
public class A {
public void display () {
System.out.println («А»);
}
}
public class B расширяет A {
public void display () {
System.out.println («Б»);
}
}
При создании объекта типа 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 class Main {
public static void main (String args) {
B obj = новый B ();
}
}
class A {
A () {
System.out.println («А»);
}
}
class B расширяет A {
B () {
супер();
System.out.println («Б»);
}
}
Согласно приведенной выше программе, у класса A есть конструктор A (). Класс B имеет конструктор B (). Класс B расширяет класс A. При создании объекта типа B он будет печатать A, B в качестве вывода. Конструктор B () имеет super (). Следовательно, сначала вызывается конструктор A, а затем переходит к B. Даже если super () не записан, по умолчанию вызывается родительский конструктор.
Супер использование метода заключается в следующем.
Рисунок 03: Программа Java, вызывающая метод суперкласса
Согласно приведенной выше программе, класс A имеет метод отображения. Класс B также имеет метод отображения. Класс B расширяет A. При создании объекта типа B и вызове метода отображения результат будет как A и B. В методе отображения класса B метод отображения класса A вызывается с помощью super.display (). Этот метод сначала печатает букву «А». Затем печатает «B».
В чем сходство между этим и супер?
Оба являются ключевыми словами в программировании на Java
В чем разница между этим и супер?
Различать статью в середине перед таблицей
Это против Супер |
|
'This' - это ссылочная переменная, которая используется для ссылки на текущий объект. | «Super» - это ссылочная переменная, которая используется для ссылки на непосредственный объект суперкласса. |
Переменная экземпляра | |
С его помощью можно ссылаться на текущую переменную экземпляра класса. | Переменная экземпляра суперкласса может быть указана с помощью super. |
Метод класса | |
Используя this, можно вызвать метод текущего класса. | Метод суперкласса можно вызвать с помощью super. |
Конструктор | |
Конструктор текущего класса можно вызвать с помощью this (). | Конструктор суперкласса можно вызвать с помощью super (). |
Резюме - это против супер в Java
Ключевые слова this и super используются в Java. Ключевые слова не могут использоваться в качестве переменных или любого другого имени идентификатора. Вроде бы одинаковые, но есть разница. Разница между this и super заключается в том, что super - это ссылочная переменная, которая используется для ссылки на непосредственный объект суперкласса, в то время как это ссылочная переменная, которая ссылается на текущий объект.
Загрузите PDF-файл this vs super на Java
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Пожалуйста, скачайте PDF-версию здесь: Разница между этим и супер в Java