|
抽象类(abstract class) |
接口(Interface) |
关键字 |
abstract |
Interface |
方法 |
可以有普通方法 |
全部抽象方法(jdk8可以存着default方法、静态方法) |
构造器 |
有构造方法 |
无构造方法 |
与正常java类比较 |
除了你不能实例化抽象类之外,它和普通Java类没有任何区别 |
接口是完全不同的类型 |
访问修饰符 |
抽象方法可以有public、protected、default |
接口方法默认都是public |
继承 |
单继承多实现 |
接口多继承 |
变量 |
普通变量 |
常量 |
/**
* JAVA8特性
*/
public interface T {
public static void main(String[] args) {
System.out.println("interface");
}
default String f(){
return "";
}
static void f1(){
System.out.println("F1");
}
}
abstract class T1{
public static void main(String[] args) {
T.f1();
System.out.println("abstract");
}
}