接口
写法
1 | 访问权限修饰符 interface 类名{ |
接口中的属性默认使用public static final修饰。
实现接口
1 | 访问权限修饰符 class 类名 implements 接口1,接口2...{ |
接口与抽象类的区别
Inteface
1 | 访问权限修饰符 interface 接口名{ |
抽象类
1 | 访问权限修饰符 abstract class 类名{ |
Java只能单继承但是可以多实现
抽象类使子类向上抽取的概念
接口定义一个功能
- 默认的实现方法:
- 抽象类可以有默认的方法实现完全是抽象的
- 接口根本不存在方法的实现
- 是否有构造方法:
- 抽象类可以有构造方法
- 接口不能有构造方法
- 可用的修饰符:
- 抽象方法可以被public,protected和default这些修饰符
- 接口方法默认修饰符是public。不可以使用其他修饰符
- 速度:
- 抽象方法的速度比接口快
- 接口是稍微有点慢的,因为它需要时间去寻找在类中实现的放啊
- 新增新方法对子类的影响:
- 如果你往抽象类中添加新的方法,你可以直接实现方法,不需要更改你原有的代码
- 接口中只能添加抽象方法,当你添加了抽象方法,实现接口的类必须实现这个方法
- 一个类只能继承一个父类,但是可以实现多个接口
常见关系
- 类与类
- 继承:单继承
- 聚合:多聚合
- 类与接口
- 实现:多实现
- 接口与接口
- 继承:多继承
接口的好处
- 程序的耦合度降低
- 更自然的使用多态
- 设计与实现完全分离
- 更容易搭建程序框架
- 更容易更换具体实现