开发者社区> 问答> 正文

Java中的数据成员继承的多态

public class PolymorphismTest {
public void show() {
    A a = new B();
    B b = new B();
    a.show();
    b.show();
    System.out.println("a.a: " + a.a);
    System.out.println("b.a: " + b.a);
}

public class A { 
    public int a = 5;
    public void show() {
        System.out.println("A show");
    }

}

public class B extends A {
    public int a = 6;
    public void show() {
        System.out.println("B show");
    }
}
}

为什么这里a.a的值是5而不是6呢?

展开
收起
蛮大人123 2016-02-20 10:57:28 1857 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    Java中成员变量不具有多态性。一般情况下,方法可以在运行时绑定(动态绑定),但是变量只能在编译时绑定(静态绑定)。如果要得到B类中的a的值可以在B类中添加a的getter方法然后调用a.getA();

    2019-07-17 18:45:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载