package text4.Interface;
public class SubClassTest {
public static void main(String[] args) {
SubClass s = new SubClass();
//如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法
//通过实现类的对象,可以调用接口中的默认方法
//(优先原则)
//如果子类或实现类继承父类和接口中里面的方法,同名同参数的方法中,
//那么子类也没有重写的情况下,默认调用的是父类中的同名同参的方法。
s.method2();
s.method3();
//接口中定义静态方法,只能通过接口来调用
CompareA.method1();
s.myMethod();
}
}
class SubClass extends superclass implements CompareA, CompareB {
public void method2() {
System.out.println(“伤寒”);
}
public void method3() {
System.out.println("CompareA:上上");
}
public void myMethod(){
System.out.println("************");
method3();//调用自己重写的方法
super.method3();//调用的是父类中声明的
CompareA.super.method2();//调用接口的默认方法
CompareA.super.method3();//调用接口的默认方法
}
}
class superclass {
public void method3() {
System.out.println(“CompareA:上通”);
}
}
interface CompareA {
//静态方法
public static void method1() {
System.out.println(“CompareA:北京”);
}
//默认方法
public default void method2() {
System.out.println("CompareA:上海");
}
public default void method3() {
System.out.println("CompareA:上镜");
}
}
interface CompareB {
default void method3() {
System.out.println(“CompareA:上学”);
}
}