class Demo{
public static void main(String[] args){
Son s = new Son();
s.show();
System.out.println(Son.name);
}
}
class Father {
String name = "father";
public void show(){
System.out.println( name + " father测试~~~");
}
}
class Son extends Father{
String name = "son";
}
特别不理解,调用的时候为什么输出name的值为fater呢???继承不是this代表子类对象啊??求大神指导
假设父类 a=1 b=2 c=3
子类重写了 a=11 b=22
那么调用输出的时候
a=11 b=22 c=3 ?
------------
你子类只是给成员变量name赋值了。 成员函数 show方法没有重写。main调用show的时候是父类的show(),而父类show的是父类的name。你重写子类的 show方法试试,调用的就是子类的name了。
不写public的时候是不是默认private?
不是啊~~~应该是调用机制在继承这块我有点晕~~~
@Goorwl: @Goorwl: 你没有重写也没用new覆盖.所以父类中调用的父类.子类中调用的是子类.
你调用的父类的方法,如果没有重写,父类会显示基类的字段直
System.out.println(Son.name);你写的Son.name不是static的,不能直接同类名调用属性!