为了账号安全,请及时绑定邮箱和手机立即绑定

aa.foot的值为何是A中的4而不是B中的2。

class A{

    int foot=4;

    void m1(){

        System.out.println("A`s m1");

    }

    void m2(){

        System.out.println("A`s m2");

    }

    void  m3(){

        System.out.println("A`s m3");

    }

}

 class B extend A{

    int foot=2;

    void m1(){

        System.out.println("B`s m1");

    }

}

 class C extend B{

    void m3(){

        System.out.println("C`s m3");

    }

}

public class Lianxi10 {
    public static void main(String[] args){

   A aa=new C();

    aa.m1();

    aa.m2();

    aa.m3();

    System.out.println(aa.foot);

}
}


正在回答

4 回答

我把你的代码复制到的环境中都无法执行,报错如下图所示:

https://img1.sycdn.imooc.com//5b96386d0001b65106940298.jpg

1 回复 有任何疑惑可以回复我~
#1

迷途的旅人 提问者

这应该是多态的应用与对象数据类型的转换(向上转型)。 是我打错代码了,十分抱歉 。
2018-09-16 回复 有任何疑惑可以回复我~

因为你对象是A呀



1 回复 有任何疑惑可以回复我~

我想知道你的是怎么执行成功的?按理说类型不匹配无法编译执行啊???我的就无法执行。

1 回复 有任何疑惑可以回复我~
#1

迷途的旅人 提问者

给您添麻烦了
2018-09-16 回复 有任何疑惑可以回复我~

类型不匹配,不能从 C 转换为 A

1 回复 有任何疑惑可以回复我~
#1

迷途的旅人 提问者

不好意思,我的代码没复制好。
2018-09-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

aa.foot的值为何是A中的4而不是B中的2。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信