Ключевая разница - это и супер в Java
Ключевые слова this и super используются в программировании на Java. Эти ключевые слова нельзя использовать в качестве переменных или любого другого имени идентификатора. Java поддерживает объектно-ориентированное программирование (ООП). Программа или программное обеспечение могут быть смоделированы с использованием объектов. Объекты ненасытны с помощью классов. Одним из столпов ООП является наследование. Он обеспечивает возможность повторного использования кода. Уже существующие классы являются суперклассами, а производные классы - подклассами. Ключевое слово super может использоваться для ссылки на объект суперкласса. В системе несколько объектов. Ключевое слово this используется для ссылки на текущий объект. Ключевое различие между this и super заключается в том, что «this» - это ссылочная переменная, которая используется для ссылки на текущий объект, а «super» - это ссылочная переменная, которая используется для ссылки на непосредственный объект суперкласса.
Что это такое в Java?
Ключевое слово this используется для ссылки на текущий объект. Обратитесь к данной программе Java.
Рисунок 01: Java-программа, использующая это ключевое слово
В Java существует три типа переменных. Это переменные экземпляра, локальные переменные и переменные класса. Согласно приведенной выше программе, класс Employee имеет две переменные экземпляра. Это идентификатор и имя. Локальные переменные - это переменные, принадлежащие методам. Переменные класса являются общими для всех объектов. Идентификатор и имя передаются конструктору Employee. Если программист пишет id=id; он не будет инициализировать переменные экземпляра, потому что конструктор уже имеет идентификатор и имя. Для переменных экземпляра нет значений. Таким образом, при их печати будет отображаться null. При использовании this он относится к текущему объекту. Поэтому, задав идентификатор и имя конструктору, можно установить переменные экземпляра.
Ключевое слово this может использоваться для вызова текущего метода класса. Обратитесь к данной Java-программе.
публичный класс ThisDemo{
public static void main(String args){
Myclass myClass=new Myclass();
myClass. B();
}
}
класс Myclass{
public void A(){
System.out.println(“A”);
}
public void B(){
System.out.printn(“B”);
this. A();
}
}
Класс Myclass содержит два метода. Это метод A и B. При создании объекта Myclass и вызове метода B будет выводиться B, A в качестве вывода. В методе B после печати B есть выражение this. A(). Используя это, был вызван метод текущего класса.
Это ключевое слово также можно использовать для вызова текущего конструктора класса. Обратитесь к данной программе.
публичный класс ThisDemo{
public static void main(String args){
A obj=new A(5);
}
}
класс А{
public A(){
System.out.println("Конструктор A");
}
public A(int x){
это();
System.out.println("Параметризованный конструктор A");
}
}
Согласно приведенной выше программе, класс A имеет конструктор по умолчанию и конструктор с параметрами. При создании объекта A вызывается параметризованный конструктор. В параметризованном конструкторе есть такой оператор, как this(); Он вызовет текущий конструктор класса A().
Что суперского в Java?
Ключевое слово «супер» связано с наследованием. Наследование является основной концепцией объектно-ориентированного программирования. Это позволяет использовать свойства и методы уже существующего класса в новом классе. Уже существующий класс известен как родительский класс или суперкласс. Новый класс известен как дочерний класс или подкласс.
Супер - это ссылочная переменная, которая используется для ссылки на непосредственный объект родительского класса. Ключевое слово super может ссылаться на непосредственную переменную экземпляра родительского класса или вызывать метод непосредственного родительского класса. super() используется для непосредственного вызова конструктора родительского класса.
Предположим, что есть два класса A и B. Класс A является надклассом, а класс B является подклассом. Класс A, B оба имеют метод отображения.
публичный класс A{
public void display(){
System.out.println(“A”);
}
}
общедоступный класс B расширяет A{
public void display(){
System.out.println(“B”);
}
}
При создании объекта типа B и вызове метода display он выдаст результат B. Класс A имеет метод display, но он переопределен методом display подкласса B. Если программист хочет вызвать метод display в классе A, он может использовать ключевое слово super. Обратитесь к данной программе Java.
Рисунок 02: Java-программа, использующая ключевое слово super
Согласно приведенной выше программе, класс A имеет переменную с именем number со значением 10. Класс B расширяет A и имеет переменную с именем number со значением 20. Как правило, при создании объекта типа B и вызове метода отображения должен дать номер в подклассе, потому что значение суперкласса переопределяется новым классом. При использовании super.num выводится значение номера суперкласса.
Супер() можно использовать для вызова конструктора суперкласса. См. приведенную ниже программу.
общественный класс Main {
public static void main(String args){
B obj=new B();
}
}
класс А{
А(){
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-программа, которая вызывает метод суперкласса
Согласно приведенной выше программе, класс A имеет метод отображения. Класс B также имеет метод отображения. Класс B расширяет A. При создании объекта типа B и вызове метода отображения будут выводиться как A и B. В методе отображения класса B метод отображения класса A вызывается с использованием super.display(). Этот метод сначала печатает «A». Затем печатает «B».
В чем сходство между this и super?
Оба являются ключевыми словами в программировании на Java
В чем разница между this и super?
Это против Супер |
|
this - это ссылочная переменная, которая используется для ссылки на текущий объект. | «super» - это ссылочная переменная, которая используется для ссылки на непосредственный объект суперкласса. |
Переменная экземпляра | |
К текущей переменной экземпляра класса можно обращаться с помощью this. | Переменная экземпляра суперкласса может быть передана с помощью super. |
Метод класса | |
Текущий метод класса может быть вызван с помощью this. | Метод суперкласса можно вызвать с помощью super. |
Конструктор | |
Текущий конструктор класса может быть вызван с помощью this(). | Конструктор суперкласса можно вызвать с помощью super(). |
Резюме – это против супер в Java
Ключевые слова this и super используются в Java. Ключевые слова нельзя использовать в качестве переменных или любого другого имени идентификатора. Они кажутся одинаковыми, но у них есть разница. Разница между this и super заключается в том, что super - это ссылочная переменная, которая используется для ссылки на непосредственный объект суперкласса, в то время как это ссылочная переменная, которая ссылается на текущий объект.
Загрузить PDF-файл этого vs super в Java
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономном режиме в соответствии с примечанием к цитированию. Загрузите PDF-версию здесь: Разница между this и super в Java