package Com.bigDataWork_exer04;
public interface ComparA {
public static void method() {
System.out.println("compar: 北京");
}
public default void method2() {
System.out.println("compar :上海--");
}
default void method3() {
System.out.println("compar :上海-魔都");
}
}
package Com.bigDataWork_exer04;
public class SubclassTest {
public static void main(String[] args) {
Subclass subclass = new Subclass();
ComparA.method();
subclass.method2();
subclass.method3();
subclass.method2();
}
}
class Subclass implements ComparA {
public void method3() {
System.out.println("compar :上海-杭州");
}
public void method2() {
System.out.println("compar :江苏");
}
public void Mymethod(){
ComparA.super.method2();
ComparA.super.method3();
}
}
package Com.bigDataWork_exer04;
public class ComparB implements ComparA {
public static void method() {
System.out.println("compar: 北京");
}
public void method2() {
System.out.println("compar :上海");
}
public void method3() {
System.out.println("compar :上海-魔都");
}
}
- 知识点1 :
接口中定义的静态方法,只能通过接口来调 - 知识点2: 通过接口实现类的对象,可以调用接口中的默认方法;
如果实现类中重写了默认方法.调用时仍然调用的是重写以后的方法 - 知识点3: 如何调用父类中声明的方法。
可以通过接口名.super.方法名.进行调用。 - 知识点4:如果子类或者实现类继承的父类和实现的接口中声明了同名同参数的默认方法
那么子类在没有重写此方法的情况下,默认调用的是父类中的同名同参数的方法 —>类优先原则
|