接口的特性
1.接口不可以被实例化
2.实现类必须实现接口的所有方法
3.实现类可以实现多个接口
4.接口中的变量都是静态常量
语法:
接口表示一种能力
面向接口编程
接口有比抽象更好的特性
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
接口是一种约定
抽象类和接口的区别
相同点:
1.代表系统的抽象层
2.都不能被实例化
3.都能包含抽象方法
(用于描述系统提供的服务,不必提供具体实现)
不同点:
1.在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
(抽象类便于复用,接口便于代码维护)
2.一个类只能继承一个直接的父类,但可以实现多个接口
使用原则:
1.接口做系统与外界交互的窗口
(接口提供服务)
2.接口本身一旦制定,就不允许随意修改
3.抽象类可完成部分功能实现,还有部分功能可作为系统的扩展点
面向对象设计原则
1.多用组合,少用继承
2.针对接口编程
3.针对扩展开放,针对改变关闭
小结