接口和抽象类的区别是什么?
- 接口的方法默认时 public, 所有方法在接口中不能有实现(Java 8开始接口方法可以有默认实现), 而抽象类可以有非抽象方法.
- 接口中除了 static, final 变量, 不能有其他表变量, 而抽象类中则不一定.
- 一个类可以实现多个接口, 但只能实现一个抽象类. 接口自己本身可以通过继承拓展多个接口.
- 接口方法默认修饰符是 public, 抽象方法可以有 public, protected 和 default 这些修饰符(不能用 private, 不然就不能被覆写了).