问答详情
源自:7-1 编程练习

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);

}
}


提问者:迷途的旅人 2018-09-09 17:07

个回答

  • CNSDHH
    2018-09-10 17:26:16
    已采纳

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

    https://img3.mukewang.com/5b96386d0001b65106940298.jpg

  • qq_瑾心_04135864
    2018-09-10 23:32:52

    因为你对象是A呀



  • CNSDHH
    2018-09-10 17:23:59

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

  • CNSDHH
    2018-09-10 17:20:19

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