在Java中,super
關(guān)鍵字用于引用父類(或基類)的一個(gè)對(duì)象。它主要用于以下幾種情況:
super
關(guān)鍵字調(diào)用父類的同名方法。這樣可以確保父類的方法不會(huì)被子類完全隱藏。class Animal {
void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
super.makeSound(); // 調(diào)用父類的makeSound方法
System.out.println("The dog barks");
}
}
super
關(guān)鍵字。注意,子類不能直接訪問父類的私有變量(private),但可以通過公共的getter和setter方法來訪問。class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Employee extends Person {
public void printName() {
super.setName("John Doe"); // 設(shè)置父類的name變量
System.out.println(super.getName()); // 訪問父類的name變量
}
}
super
關(guān)鍵字。class Person {
private String name;
public Person() {
this.name = "Unknown";
}
public Person(String name) {
this.name = name;
}
}
class Employee extends Person {
public Employee() {
super("Employee"); // 調(diào)用父類的帶參構(gòu)造方法
}
}
總之,super
關(guān)鍵字在Java面向?qū)ο缶幊讨杏糜谝酶割惖膶?duì)象、方法和成員變量,以便在子類中實(shí)現(xiàn)多態(tài)性、避免父類方法的隱藏以及調(diào)用父類的構(gòu)造方法等操作。