抽象类
① 声明时需要abstract关键字,抽象类不能被实例化,类的其它功能和普通类一样;
② 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类;
接口
① 以interface来声明,接口并不是类,属于不同的概念,类描述对象的属性和方法,接口则包含类要实现的方法;
② 接口中所有的方法必须是抽象方法(默认,可以不使用abstract声明),Java 8之后接口中可以定义static和default 关键字修饰的方法,并且这两种必须有方法实现。实现类可以不重写该方法,也可以重写,目的是为了解决接口的修改与现有的实现不兼容的问题;
③ 接口的成员变量默认为public static final 类型,接口中不能使用静态代码块;
④一个接口能继承另一个接口,并且还支持多继承
应用:
定义类的时候可以实现多个接口,但由于Java不支持类的多继承,只能继承一个抽象类。
实现接口:类使用implements关键字实现接口,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
继承抽象类:抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。