抽象类和接口的区别
相同点:
都不能被实例化,只能实现接口或子类继承抽象类之后才能实例化,
不同点:
单继承、多实现,抽象类是使用的extends、接口使用的是implements
抽象类强调的是从属关系、接口强调的是特定的功能
抽象类中有定义、也有实现;接口中只有定义,当然了JDK1.8引入了default方法
接口中的成员变量只能被public static final修饰,必须被初始化,切不能修改;而抽象类中的成员变量是可以修改的。
public interface Person{ public static final int a=10; //JDK1.8 default void sayHello(){ System.out.println("Hello World"); } public void say(); } public abstract class Person{ public abstract void say(); public void eat(){}; }