public class subClassTest{
public static void main(String[] args) {
CompareA.methon1();//静态方法调用
//subClass.methon1();1:接口中声明的静态方法只能用接口来调用,不能用实现类来调用
//以下是默认方法调用,先造对象
subClass s1 = new subClass();
//2:接口中声明的默认方法可以被实现类继承,以此创建对象调用,在实现类中如果没有重写默认方法,那么默认调用接口中的默认方法
s1.methon2();
//3:如果类实现了两个接口,而两个类中存在通同名同参数的方法式会发生接口冲突,必须在实现类中重写方法主体,才能使用
//4:子类(或者叫实现类)继承了父类并实现了接口,那么如果父类和接口中含有同名同参数的方法,那么在子类中默认调用的方法
//是父类的方法。
//jdk9新特性:定义私有方法
}
}
interface CompareA{
//接口属性声明为 public static final
//jdk8之前方法均为抽象方法 abstract
//jdk8:可声明静态方法,由接口名直接调用
public static void methon1(){
System.out.println("CompareA:北京");
}
//jdk8:中的默认方法(defalut修饰后就不是抽象方法了)
public default void methon2(){
System.out.println("CompareA:上海");
//可在实现类处重写
}
private void methon4(){//内部用
System.out.println("我是接口中定义的私有方法");
}
}
class subClass implements CompareA {
//实现methon2重写
public void methon2(){
System.out.println("subClass:上海");
}
}
关于接口运用和一些新特性
于 2024-08-06 16:14:44 首次发布