Java中子类继承父类关于成员变量的调用问题

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代表子类对象啊??求大神指导

犯罪嫌疑人X
浏览 1563回答 6
6回答

函数式编程

假设父类 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覆盖.所以父类中调用的父类.子类中调用的是子类.

尚方宝剑之说

你调用的父类的方法,如果没有重写,父类会显示基类的字段直
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java