方法冲突
一个子类继承了父类里的方法和接口里的方法冲突
调用时调用类的方法
class类的优先级要高于interface接口的优先级
代码示例:
Super类声明两个方法
public class Super {
public static void staticFunction(){
System.out.println("super static function()");
}
public void function(){
System.out.println("super function()");
}
}
接口Interface中同样声明两个与Super类同名的方法
public interface Interface {
static void staticFunction(){
System.out.println("Interface static function()");
}
default void function(){
System.out.println("Interface default function()");
}
}
Sub类继承Super类并实现Interface接口
public class Sub extends Super implements Interface{
}
测试类:
类点方法名
public class SubTest {
@Test
public void test01(){
Sub.staticFunction();
}
}
输出Super类的方法
super static function()
接口的引用指向子类实例化对象
public class SubTest {
@Test
public void test02(){
Interface interFace = new Sub();
interFace.function();
}
}
输出Super类的方法
super function()
实例化子类
public class SubTest {
@Test
public void test03(){
Sub sub = new Sub();
sub.function();
}
}
输出Super类的方法
super function()