class Father {
int age = 50;
static int score = 75;
public void show() {
System.out.println("這是老爸的show");
}
}
class Son extends Father {
int age = 25;
static int score = 100;
public void show() {
System.out.println("這是兒子的show");
}
}
class Demo1 {
public static void main(String[] args) {
Father f = new Son();
System.out.println(f.age);
f.show();
}
}
上面是一段看上去沒有什么內(nèi)容好說的,但他包含了java處理對象中的數(shù)據(jù)問題:
它處理數(shù)據(jù)時有兩個過程,當(dāng)然是編譯和運行,F(xiàn)ather f = new Son();在處理這個代碼時
成員變量,靜態(tài)變量,靜態(tài)方法編譯和運行都看左邊,就是都以父類為主。成員方法編譯看左邊,其實看左邊也就是說你父類沒有show方法也會報錯,運行看右邊。
如果在子類的方法中去找變量的話先去找子類中的再去找父類中的。和這種直接在main方法中取值不要搞混了。