Java接口,继承QUESTION 31Given:1. interface A { public void aMeth

1个回答

  • E是D的子类所以E的实例可以声明为D类型

    变量e声明类型是D( D e ), 而实际类型是E( new E() ),不需要进行显示类型转换

    D e = (D)(new E()) 和 D e = new E()没有区别

    因为把变量e声明为D类型,D实现(implements)B,所以e可以调用方法bMethod()

    但是变量e的实际类型是E,E这个类覆盖了D类的bMethod(第9行不写的话调用的是第5行的bMethod,写了就覆盖了D的bMthod)

    所以e.bMethod()调用的就是第9行也就是覆盖父类方法的bMethod()