在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:
public interface IA {
public void out();
}
public class SA {
public void out() {
System.out.println("SA");
}
}
public class A extends SA implements IA {
public static void main(String[] args) {
new A().out();
}
}SA
可见子类中的out()方法是从父类来的。
注意:实现接口有个规则:接口中的方法在实现类中都要写出来,而这里却没有,所以大家应该注意到了,子类A中却没有,这是因为父类实现了这个方法。所以,只要父类中存在接口中的方法,只要没必要改动,就可以不用override了
Java继承与接口方法冲突解析
本文通过一个具体示例探讨了当一个Java类同时继承一个父类并实现一个接口,且两者都定义了相同方法名的情况下,子类将如何处理这一冲突。实验证明,子类将默认调用父类中实现的方法。

833

被折叠的 条评论
为什么被折叠?



