抽象类:拥有抽象方法的类叫做抽象类,抽象类不一定要有抽象方法,但有抽象方法的类一定要定义为抽象类。
接口:只有静态常量和抽象方法
相同点:
1.抽象类和接口都是将方法抽象,让子类去实现,两者都可以定义抽象方法。
2.都不能创建对象,只能由子类去实例化子类对象,子类要扩展他们时,抽象类用的是extends关键字继承,接口使用implements关键字实现,抽象类有构造器,不能创建对象,主要用来限制子类的构造方法。
3.抽象类可以实现接口,接口只能继承接口
可以用抽象类,和接口时,尽量去用接口,这样子类的灵活度更高
java8之后,default关键字修饰抽象方法,该方法变为不是抽象方法,可以在接口中实现。接口中只能用public权限修饰符修饰,不添加权限修饰符,也是public