0x01 接口
在Java中,接口表示一种规范,要求实现者必须遵循这个规范,用来约束使用者该怎么做
必须要求实现者提供具体的实现方法
接口就是一个特殊的抽象类
就算不实用abstract关键字,他在编译的时候也会自动在class文件中,在方法名前面加上public abstract
0x02 接口的特点
- 接口是没有构造器的,接口是不能创建对象
- 接口当中定义变量,会被当作是全局静态常量
String name = “pino”; ====>>> public static final String name = “pino”; - 接口中定义的方法,都是公共的抽象方法
- 接口是可以继承的,并且是多继承,都好分割,但是类不能多继承
- 接口一般可以称为父类
- 接口也可以多实现,逗号分隔
- 实现接口的时候,子类要比接口中的类的方法权限大(一般都是public)
- 面向接口编程(赋值的时候,可以直接赋值给接口类型,多态的概念)
0x03 接口与抽象类的区别?
相同:
- 都是被其他类实现或继承
- 都不能被实例化
- 都可以定义抽象方法,定义的抽象方法都必须得要覆盖
不同点:
- 接口是没有构造器的,抽象类是有的
- 抽象类可以包含普通方法,但是接口当中只能有抽象方法,不能有普通方法
- 接口默认的成员变量是public static final变量,抽象类当中是默认权限
- 接口当中的默认方法是public abstract 方法名
0x04 面向接口编程
把实现类赋值给接口类型的变量
- 为什么使用?
多态的好处:屏蔽了不同类之间的差异,从而实现通用编程