Въведение в Супер ключова дума в Java
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 () вътре в дочерния клас използва супер ключовата дума за препращане на полето в родителски клас.
2. Да се отнесе методът на клас на незабавен родител
Преопределянето на метода е процес, при който клас на дете декларира същата функция или метод, които вече са налични в родителския клас. Да предположим, че ако повикването на метода се случи от обекта на детския клас, тогава методът само в детския клас ще бъде извикан. За достъп до родителския метод може да се използва супер ключова дума.
Пример:
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 () на родителски клас.
3. За да се обърнете към конструктора от клас на непосредствения родител
Вече е известно, че конструктор (по подразбиране) се извиква автоматично, когато обектът на клас е създаден. Супер ключовата дума може да се използва за изрично извикване на конструктора на суперклас от конструктора на подкласа. Уверете се, че супер се използва само в конструктора на подкласа и това е първото изявление вътре в него.
Пример:
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
По-долу са различните примери за супер ключова дума в Java:
Пример - 1
В следната програма присъства общо име на променлива и супер се използва за извикване на променливата в родителски клас.
//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
Тази програма помага за демонстриране на супер ключовата дума, докато се позовава на същия метод в родителски клас. Тук 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
Тази програма извиква конструктора на родителския клас, използвайки ключовата дума супер.
//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, която се използва за препращане към методите или функциите, променливите или атрибутите и конструкторите в родителския клас. Ако конструктор не е деклариран, компилаторът автоматично създава конструктор по подразбиране. По същия начин компилаторът извиква супер () автоматично, ако не е деклариран. В този документ са описани подробно няколко аспекта на супер ключовата дума.
Препоръчителни статии
Това е ръководство за Супер ключова дума в Java. Тук обсъждаме как работи ключова дума доза супер в Java заедно с примери. Можете също да разгледате следните статии, за да научите повече -
- JComponent в Java
- Конструктор в Java
- Какво е наследяване на Java?
- Достъп до модификатори в Java
- Статичен метод в PHP
- Наследяване в PHP
- Пълно ръководство за наследяване в Python
- тази ключова дума в java | Примери за тази ключова дума
- Статичен метод на JavaScript | Как да работи? | Примери