Введение в супер ключевое слово в Java

Super - это ключевое слово, которое используется для вызова функции или метода в суперклассе. Это будет определено внутри подкласса. Методы, которые являются только публичными и защищенными, могут быть вызваны с помощью этого ключевого слова. Другими словами, Private методы и статические методы не могут быть вызваны с помощью этого. Ключевое слово super в java также можно использовать для вызова конструкторов родительского класса. Синтаксис, примеры и дальнейшие детали супер ключевого слова будут обсуждаться в следующих разделах.

Синтаксис

super.<> or super((0 or more arguments));

Как работает Super Keyword в Java?

Как уже упоминалось, супер может быть использован в нескольких случаях. Они используются:

  • Для ссылки на переменную экземпляра непосредственного родительского класса.
  • Для ссылки на метод непосредственного родительского класса.
  • Для ссылки на конструктор непосредственного родительского класса.

Теперь давайте рассмотрим каждый из них в деталях.

1. Чтобы сослаться на переменную экземпляра класса ближайшего родителя

Если родительский и дочерний класс имеют одинаковые элементы данных, ключевое слово Super можно использовать для доступа к полю или элементу данных родительского класса. В этом случае может возникнуть неоднозначность для виртуальной машины Java.

Пример:

class A (
protected String name="ann";
)
class B extends A (
public String name="Anna";
public void hello() (
System.out.println("I am " + name);
System.out.println("I am " + super.name);
)
)

Здесь два класса A и B имеют общее имя поля. Функция printType () внутри дочернего класса использует ключевое слово super для ссылки на поле в родительском классе.

2. Ссылаться на метод непосредственного родительского класса

Переопределение метода - это процесс, с помощью которого дочерний класс объявляет ту же функцию или метод, который уже доступен в родительском классе. Предположим, что если вызов метода происходит из объекта дочернего класса, то будет вызываться только метод в дочернем классе. Чтобы получить доступ к родительскому методу, можно использовать ключевое слово super.

Пример:

class A (
protected String name="ann";
public void hello() (
System.out.println("I am " + name);
)
)
class B extends A (
public String name="Anna”;
public void hello() (
System.out.println("I am " + name);
)
public void test()
(
hello();
super.hello();
)
)

Здесь два класса A и B имеют одинаковый метод hello (). С помощью ключевого слова super в функции test () можно получить доступ к методу hello () родительского класса.

3. Ссылаться на конструктор класса Immediate Parent.

Уже известно, что конструктор (по умолчанию) автоматически вызывается при создании объекта класса. Ключевое слово super может использоваться для явного вызова конструктора суперкласса из конструктора подкласса. Убедитесь, что super используется только внутри конструктора подкласса, и это первый оператор внутри него.

Пример:

class A (
//constructor of parent class
A() ( System.out.println("I am Kavya Madhavan");
)
)
//child class
class B extends A (
//constructor of child class
B() (
super();
System.out.println("I am Dileep Menon"); ) )

Примеры супер-ключевых слов в Java

Ниже приведены различные примеры ключевого слова super в Java:

Пример - 1

В следующей программе присутствует общее имя переменной, и super используется для вызова переменной в родительском классе.

//Java program to illustrate Super keyword to refer instance variable
//parent class
class A (
protected String name="ann";
)
//child classs
class B extends A (
public String name="Anna";//variable which is same in parent class
//sample method
public void hello() (
System.out.println("I am " + name);
System.out.println("I am " + super.name);
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
objb.hello();//call the method in child class
)
)

Выход:

Пример - 2

Эта программа помогает в демонстрации ключевого слова super при обращении к тому же методу в родительском классе. Здесь hello () - это метод, который доступен в обоих классах.

//Java program to illustrate Super keyword to refer same method in parent class
//parent class
class A (
protected String name="ann";
public void hello() (
System.out.println("I am " + name);
)
)
//child classs
class B extends A (
public String name="Anna";//variable which is same in parent class
//sample method which is same in parent class
public void hello() (
System.out.println("I am " + name);
)
//method to call the hello() method in parent and child class
public void test()
(
hello();
super.hello();
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
objb.test();//call the method in child class
) )

Выход:

Пример - 3

Эта программа вызывает конструктор родительского класса, используя ключевое слово super.

//Java program to illustrate Super keyword to refer constructor in parent class
//parent class
class A (
//constructor of parent class
A() (
System.out.println("I am Kavya Madhavan");
)
)
//child class
class B extends A (
//constructor of child class
B() (
super();
System.out.println("I am Dileep Menon");
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
)
)

Выход:

Пример - 4

Эта программа демонстрирует использование супер-ключевого слова для ссылки на параметризованный конструктор родительского класса.

//Java program to illustrate Super keyword to refer parameterised constructor in parent class
//parent class
class A (
//constructor of parent class
A() (
System.out.println("I am Kavya Madhavan");
)
//parameterised constructor
A(String name) (
System.out.println("I am " + name);
)
)
//child class
class B extends A (
//constructor of child class
B() (
super("Renuka");
System.out.println("I am Dileep Menon");
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
)
)

Выход:

Вывод

Super - это ключевое слово в Java, которое используется для ссылки на методы или функции, переменные экземпляра или атрибуты и конструкторы в родительском классе. Если конструктор не объявлен, компилятор автоматически создает конструктор по умолчанию. Аналогично, компилятор вызывает super () автоматически, если он не объявлен. В этом документе несколько аспектов супер ключевого слова объясняются подробно.

Рекомендуемые статьи

Это руководство по Super Keyword в Java. Здесь мы обсудим, как доза супер ключевое слово работает в Java, а также примеры. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. JComponent в Java
  2. Конструктор в Java
  3. Что такое наследование Java?
  4. Модификаторы доступа в Java
  5. Статический метод в PHP
  6. Наследование в PHP
  7. Полное руководство по наследованию в Python
  8. это ключевое слово в Java | Примеры этого ключевого слова
  9. Статический метод JavaScript | Как работать? | Примеры