javaSE复习之——面向对象_接口
接口概述
- 从狭义的角度讲就是指java中的
interface
- 从广义的角度讲对
外提供规则
的都是接口
特点:
- a : 接口用关键字
interface
表示
1 | interface 接口名 {} |
- b : 类实现接口用
implements
表示
1 | class 类名 implements 接口名 {} |
c : 接口不能实例化
那么,接口如何实例化呢?
答:按照多态的方式来实例化。
d : 接口的子类
a : 可以是抽象类。但是意义不大。
b : 可以是具体类。要重写接口中的所有抽象方法
。(推荐方案)注意事项:
1、接口中的
成员变量
默认都是常量
,他会自动加public static final
关键字,并且可以互相交换位置,新手平时都手动给出。2、接口中没有构造方法
3、接口是
干爹
,不是亲爹
,子类不能用super
访问父类中的内容,子类默认继承object类4、接口中不能定义
非抽象
方法5、类与接口是
实现
关系而非继承
关系(干爹)6、同一个类可以实现
多个
接口- 例子:
class Deom implements InterA,InterB {}
8、接口不能实现接口(implements),但是却可以继承(extends)
类 与 接口的关系
a : 类与类:
继承关系
,只能单继承,可以多层继承。b : 类与接口:
实现关系
,可以单实现,也可以多实现。
并且还可以在继承一个类的同时实现多个接口。c : 接口与接口:
继承关系
,可以单继承,也可以多继承。
抽象类 与 接口的区别:
抽象类:
和普通的类差不多,只是可以定义
抽象方法
而已接口:
成员变量:只可以
常量
成员方法:只可以抽象
设计理念区别(重要):
抽象类:
定义的是该继承体系的
共性功能
- 例:每个学生都需要学习
接口: 定义的是该继承体系的
扩展性功能
- 例:每个学生在学校的学习方式都不一样,这样就需要扩展
设计理念区别:
接口是
对动作的抽象
,抽象类是对根源的抽象
。抽象类表示的是:这个对象
是什么
。接口表示的是:这个对象能
做什么
。比如:男人,女人,这两个类,他们的抽象类是人。
说明:他们都是人,他们的根源就是人
又比如:人可以吃东西,狗也可以吃东西,可以把“吃东西”定义成一个接口,然后让这些类去实现它。
说明:他们都可以吃东西,他们的根源是不同
的,但是做的动作却相同
的。
结论
- 在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。
- 当关注一个
事物的本质
的时候,用抽象类
; - 当关注一个
要做的动作
的时候,用接口
。