java继承问题 输出

class SubClass extends SuperClass
{
    public String name = "SubClass";
}

class SuperClass
{
    public String name = "SuperClass";
}

public class Demo
 {
    public static void main(String[] args) 
    {
        SuperClass clz = new SubClass();
        //你觉得这里输出什么?
        System.out.println(clz.name);
    }
}

答案为啥是 SuperClass

阅读 1.9k
1 个回答

因为字段上面不会有多态,只有方法才会有多态。直接访问字段时是以声明类型来对待的。这里的Super是声明类型,Sub是实际类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏