package WangLin;
class Father
{
public int field = 0;
public int getField()
{
return field;
}
}
class Son extends Father
{
public int field = 1;
public int getField()
{
ret

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Elijah

    19人对此回答表示赞同

    java继承中有方法的重写,却没有属性字段的覆盖。
    展开
    19
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 刀豆三郎

    5人对此回答表示赞同

    这是java典型的多态性的例子了:
    你的测试满足多态的三要素:有继承,有重写,有父类引用指向子类对象。
    Father f = new Son(); ---父类指向子类对象,在调用f.getField()时动态调用子类中重写的方法
    所以返回值是1,而不是0。
    而继承关系里,父类是看不到子类的属性的,所以父类引用f只能读取自身的field值,即0,而不是1
    多态性是指方法的动态调用,属性就不行啦。
    展开
    5
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 空空如也

    1人对此回答表示赞同

    这不是多态体现,因为域访问将在编译时解析,f.field = 0是没有错的,Son和Father具有两个不同的存储空间,当f指向的是Father时,调用的就是Father的域,也就是0
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部