抽象的概念
抽象有两种理解:
1.与具体相对,它表达的是一种概念而非实体。
2.与细节相对,它表达的是在一定程度上忽略细节而着眼大局。
抽象类与抽象方法
概念:
抽象类——表达概念而无法创建实体的类。
抽象方法——表达概念而无法实现具体代码的方法。
特征:
抽象类不能够创建实例对象,但可以声明变量为抽象类类型,并赋予null值或者将非抽象类实例付给该变量(必须为抽象类的子类)。
抽象类中可以没有抽象方法,但抽象方法必须包含在抽象类中。
继承抽象类的子类必须覆盖该抽象类中的所有方法,否则该子类也必须也是抽象类。
与接口比较:
如果说抽象类是一种抽象的其它类的模板,那么接口就是彻底抽象的且只含有抽象方法(jdk8中可以有默认方法)。
-
与抽象类相比,接口不能搞定的
- 抽象类能够定义非 static final 的属性(field)
- ,而接口不能。接口的属性都是static final的。
- 抽象类能够定义非public方法,而接口不能。接口的方法都是public的。
- 接口可以多继承(实现),而抽象类不能。抽象类只能单继承。
-
与接口相比,抽象类不能搞定的