我的测试结果是父类和接口共用同一个方法。代码如下:
public class A extends B implements C {
public static void main(String[] args) throws Exception, NoSuchMethodException{
A a= new A();
B b = new A();
C c = new A();
b.test();
c.test();
c.test2();
}
@Override
public void test() {
System.out.println("test");
}
@Override
public void test2() {
System.out.println("test2");
}
}
由于父类变量可以指向子类对象,所以
B b = new A(); C c = new A();是允许的。
假设子类A只是覆盖父类B中的test(),则变量c肯定访问不到test();对于子A类覆盖接口C,道理也是一样。但以上代码都能访问到test()方法。
我又在接口C中加了一个test2()方法。通过以上方式,c可以访问到test2()方法,但b访问不到test2()。所以由此推断子类A既重写了父类B
的test()的方法,也重写了接口C的test方法。 |