从方法上而言
接口中的方法默认都是public
或者是default
使用public
修饰的方法不允许存在方法体,使用default
的方法不允许不存在方法体
使用default
的方法在实现类中可以不被Override
掉default
关键字存在于jdk1.8
之后,然而却存在下面一个情况
default void print() {
System.out.println("Hello");
}
在编译后会变成
public void print() {
System.out.println("Hello");
}
从属性上而言
接口中的属性默认都是static final
修饰的
抽象类中的属性与普通类中的无异
从父子关系上而言
类可以实现多个接口,而类只能继承一个类
从使用上而言
实现一个接口就必须实现所有非default修饰的方法,继承一个类必须重写所有抽象方法
发表回复