接口的特点:
(1)接口是对外暴露的规则。例如:CPU的插槽
(2)接口是程序的功能扩展。预留多个USB接口,插座.
(3)接口的出现降低耦合性。
耦合:类与类之间的关系.(比如依赖关系)
内聚:类完成功能的能力.
编程规范:低耦合,高内聚.
(4)接口可以用来多实现。
(5)类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
(6)接口与接口之间可以有继承关系。
抽象类的特点:
(1)抽象类和抽象方法必须用abstract关键字来修饰。
(2)抽象方法只有方法声明,没有方法体,定义在抽象类中。
(3)抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类.
(4)抽象类不可以被实例化,也就是不可以用new创建对象。原因如下:
抽象类是具体事物抽取出来的,本身是不具体的,没有对应的实例。
例如:犬科是一个抽象的概念,真正存在的是狼和狗。
而且抽象类即使创建了对象,调用抽象方法也没有意义。
(5):抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,
否则该子类也要定义为抽象类。
接口和抽象类的区别:
(1):抽象类只能被单继承,接口可以多实现
(2):抽象类中的数据特点:
成员变量:可以使变量,也可以是常量
成员方法:可以是抽象方法,也可以是非抽象方法.
构造方法:有构造方法.
接口中的数据特点:
成员变量:是常量.都是默认修饰public static final
成员方法:都是抽象方法,都是默认修饰public abstract
无构造方法
(3)接口的出现避免了多继承的局限性.
(4)抽象类中定义的是体系中的共性功能.
接口中定义的是体系中的扩展功能.
(5)抽象类被继承是"is a"关系:xx是yy的一种.
接口被实现是"like a"关系:xx像yy的一种.
当你要某个类的功能时使用继承. 如果你要想扩展某个功能就使用接口 .
|