抽象
概念:java中可以拥有没有方法体的方法,该方法由子类来具体的实现,没有方法体的方法我们称之为抽象方法,含有抽象方法的类为抽象类,抽象类可以理解为是一个只有方法声明没有方法体的特殊类。
特点:
1、通过java abstract关键字实现。
2、可以修饰方法和类。
3、抽象类中可以没有抽象方法。(抽象类中即可以有普通方法又可以有抽象方法)
4、如果一个类中含有抽象方法,那么这个类就必须为抽象类。
5、子类继承了一个抽象类后,要么还是个抽象类,要么就要重写所有的抽象方法。
6、多用与多态中。
7、抽象类不能实例化*(不能new)。
8、抽象类中既可以有变量又可以有常量。
接口
概念
Java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现。
ava接口和Java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。OOP面向对象的编程,如果要提高程序的复用率,增加程序的可维护性,可扩展性,就必须是面向接口的编程,面向抽象的编程,正确地使用接口、抽象类这些太有用的抽象类型做为java结构层次上的顶层。
特点
1、 接口中都是抽象方法
2、 通过interface关键字创建接口
3、 通过implements让子类来实现
4、 可以理解成,接口是一个特殊的抽象类
5、 接口突破了java的单继承的局限性
6、 接口和类之间可以多实现,接口和接口之间可以多继承
7、 接口是对外暴露的规则,是一套开发规范
8、 接口提高了程序的功能扩展,降低了耦合性
9、 接口中没有构造方法,没有成员变量(会自动转化为公开的,静态的,常量)。