супер -ключевое слово в Java
]] Ключевое слово super
в Java - это эталонная переменная, используемая для обозначения объекта прямого родительского класса. Всякий раз, когда вы создаете экземпляр подкласса, экземпляр родительского класса создается неявно и ссылается ссылочной переменной Super
.
использование Java Super Keyword
]
super
используется для обозначения переменных экземпляра прямого родительского класса. мы можем использовать ключевое слово super
для доступа к члену данных или поле родительского класса. Если у родителей и дочернего класса есть то же поле, используйте его.
class Animal {
String color = "white";
}
class Dog extends Animal {
String color = "black";
void printColor() {
System.out.println(color); // 打印 Dog 类的颜色
System.out.println(super.color); // 打印 Animal 类的颜色
}
}
class TestSuper1 {
public static void main(String args[]) {
Dog d = new Dog();
d.printColor();
}
}
Выход:
]черный белый
В приведенном выше примере классы животных и собак имеют публичный цвет атрибутов. Если мы напечатаем свойство Color, он по умолчанию печатает цвет текущего класса. Чтобы получить доступ к родительскому свойству, нам нужно использовать ключевое слово super
.
super
можно использовать для вызова методов родительского класса. Super
также можно использовать для вызова методов родительского класса. Если дочерний класс содержит тот же метод, что и родительский класс, его следует использовать. Другими словами, если метод переписан, он используется.
class Animal {
void eat() {
System.out.println("eating...");
}
}
class Dog extends Animal {
void eat() {
System.out.println("eating bread...");
}
void bark() {
System.out.println("barking...");
}
void work() {
super.eat();
bark();
}
}
class TestSuper2 {
public static void main(String args[]) {
Dog d = new Dog();
d.work();
}
}
Выход:
]еда ... лай...
в примере, приведенном выше, классы животных и собак имеют метод eat (). дается местному методу. Чтобы вызвать метод родительского класса, нам нужно использовать ключевое слово Super
.
super
используется для вызова конструктора родительского класса. Super
также можно использовать для вызова конструктора родительского класса. Давайте посмотрим на простой пример:
class Animal {
Animal() {
System.out.println("animal is created");
}
}
class Dog extends Animal {
Dog() {
super();
System.out.println("dog is created");
}
}
class TestSuper3 {
public static void main(String args[]) {
Dog d = new Dog();
}
}
Выход:
]животное создано Собака создана
Примечание: если нет super ()
или this ()
в конструкторе, компилятор автоматически добавит super ()
в каждый конструктор класса ] (Чтобы быть добавленным)
хорошо известно, что если конструктор не существует, компилятор автоматически предоставит конструктор по умолчанию. Однако он также добавляет super ()
в качестве первого оператора. (Чтобы быть добавленным)
еще один пример Super
ключевого слова, где super ()
неявно предоставляется компилятором. (Чтобы быть добавленным)
class Animal {
Animal() {
System.out.println("animal is created");
}
}
class Dog extends Animal {
Dog() {
System.out.println("dog is created");
}
}
class TestSuper4 {
public static void main(String args[]) {
Dog d = new Dog();
}
}
Выход:
]животное создано Собака создана
super
Пример: Практическое приложение (чтобы быть дополнением)
давайте посмотрим на практическое применение ключевого слова super
. Здесь класс EMP наследует класс человека, поэтому все свойства человека будут унаследованы в EMP по умолчанию. Чтобы инициализировать все свойства, мы используем конструктор родительского класса из подкласса. Таким образом, мы повторно используем конструктор родительского класса.
class Person {
int id;
String name;
Person(int id, String name) {
this.id = id;
this.name = name;
}
}
class Emp extends Person {
float salary;
Emp(int id, String name, float salary) {
super(id, name); // 重用父类构造函数
this.salary = salary;
}
void display() {
System.out.println(id " " name " " salary);
}
}
class TestSuper5 {
public static void main(String[] args) {
Emp e1 = new Emp(1, "ankit", 45000f);
e1.display();
}
}
Выход:
]1 ankit 45000
]reference: https://www.javatpoint.com/super-keyword
]]этот пересмотренный выход поддерживает исходное значение при использовании различных формулировок и структур предложений. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3