在QQ群里经常看人问:如果一个类的父类和接口都有同一个方法,那子类的到底调用的是父类的、还是接口的方法?下面就来看一下:
接口IA:
public interface IA {
public void out();
}
父类SA:
public class SA {
public void out() {
System.out.println("SA");
}

}
子类A:
public class A extends SA implements IA {
public static void main(String[] args) {
new A().out();
}

}
结果:
SA
可见子类中的out()方法是从父类来的。
注意:实现接口有个规则:接口中的方法在实现类中都要写出来,而这里却没有,所以大家应该注意到了,子类A中却没有,这是因为父类实现了这个方法。所以,只要父类中存在接口中的方法,只要没必要改动,就可以不用override了
接口IA:



















SA
可见子类中的out()方法是从父类来的。
注意:实现接口有个规则:接口中的方法在实现类中都要写出来,而这里却没有,所以大家应该注意到了,子类A中却没有,这是因为父类实现了这个方法。所以,只要父类中存在接口中的方法,只要没必要改动,就可以不用override了