why繼承q 變量不能繼承嗎? 為什么不報錯
package practice;
public class Why extends Q{
int a = 10;
void show() {
System.out.println(a);
}
public static void main(String[] args) {
Why w = new Why();
w.show();
}
}
?class Q{
int a = 0;
}
package practice;
public class Why extends Q{
int a = 10;
void show() {
System.out.println(a);
}
public static void main(String[] args) {
Why w = new Why();
w.show();
}
}
?class Q{
int a = 0;
}
2018-04-28
舉報
2018-04-29
????????子類繼承父類后,創建的子類對象會在內存中開辟一塊區域用于存放該對象的屬性和方法地址,但這塊區域被分成兩塊,一塊用來存放從父類繼承的屬性和方法地址,一塊用來存放子類獨有的屬性和方法地址(包括重寫的方法)。
????????因此你創建的子類對象其實有兩個變量a,如果你在show()方法里在輸出super.a,就可以輸出從父類繼承的a的值。
2018-06-24
這就相當于重寫吧
2018-04-29