java子类和父类有相同成员_Java -- 父类和子类拥有同名的成员变量的情况
Java – 父類和子類擁有同名的成員變量取值情況
參考文章 結論:
當子類的成員變量與父類同名時,若對該成員變量進行操作的方法繼承于父類,則改變和獲取的是父類的成員變量。若對該成員變量進行操作的方法為子類所獨有,或override父類,則改變和獲取的是子類自己的成員變量。
當子類擁有與父類同名的成員變量時,父類的成員變量并不會被覆蓋,而是與子類的成員變量分別存儲在不同的空間,其值仍然可以被改變和訪問。
class Employee{
private String title = "Employee";
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return this.title;
}
}
class Manager extends Employee{
private String title = "Manager";
}
class Director extends Employee{
private String title = "Director";
public String getTitle() {
return this.title;
}
}
public class SameName {
public static void main(String[] args) {
Employee e = new Employee();
Employee m = new Manager();
Director d = new Director();
System.out.println(e.getTitle());
//子類Manager的getTitle方法繼承于父類Employee,
//因此調用時,訪問的是父類的同名成員變量
System.out.println(m.getTitle());
//子類Director override父類的getTitle方法,
//因此調用時,訪問的是子類自己的成員變量
System.out.println(d.getTitle());
//子類Director的setTitle方法繼承于父類Employee,
//因此調用時,改變的是父類的同名成員變量
d.setTitle("President");
System.out.println(d.getTitle());
}
}
運行輸出結果為
Employee Employee Director Director
因此,當子類的成員變量與父類同名時,若對該成員變量進行操作的方法繼承于父類,則改變和獲取的是父類的成員變量。
若對該成員變量進行操作的方法為子類所獨有,或override父類,則改變和獲取的是子類自己的成員變量。
總結
以上是生活随笔為你收集整理的java子类和父类有相同成员_Java -- 父类和子类拥有同名的成员变量的情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 数学表达式解析插件_数学表达式
- 下一篇: java编程一般类抽象类的定义,Java