接口关键字:interface, 实现implement
事物的扩展功能使用接口
interface 类名{}
在类的成员位置上可以定义: 成员变量,成员函数,构造函数,静态代码块,构造代码块
在接口的成员位置上只能写:成员变量,成员函数
接口不是类,他的出现仅仅是给描述这个使物体系增加额外的共性功能,因此在接口中没有构造函数,也就是接口不能new对象
接口中成员修饰符
接口中的所有成员都有固定的修饰符,也就是说即使在接口中不写修饰符,编译的时候也会默认添加固定的修饰符
接口中成员变量修饰符:
public static final : 可以省略不写,如果在代码中不写,那么编译器编译源文件生成类文件的时候,会在变量前面加上这三个修饰符 public static final int a = 10;
接口中成员函数修饰符:
public abstract 返回值类型 函数名 (参数列表)
接口中函数也是抽象的,没有函数体
public abstract 可以省略, 但是建议可以省略 abstract , 不要省略public,如果在代码中不写,编译器也会默认添加的。
注意:
- 接口不能创建对象,那么怎么调用接口中成员变量?
因为成员变量规定修饰符是public final static 由于被static修饰,可以按照静态思想,通过类名调用,接口名.变量名
2.我们以后在开发中使用最多的情况是在接口中定义抽象函数,然后在实现类中复写接口中所有函数,这就是所谓的面向接口编程
类可以实现多个接口,但不能继承多个父类
继承:一个类不能继承多个父类,如果多个父类存在同一功能,那么子类存在调用不确定性
接口: 子类调用多个类相同功能时,之所以产生调用不确定性,其核心原理是因为多个父类中的功能都书写了实现功能函数体,而接口中定义了功能,但没有功能实现的函数体,而功能的实现代码需要由子类自己来写, 所以不存在调用不确定性,所以接口可以多实现
类和类: 继承关系,一个类只能继承一个父类 extends
类和接口: 实现关系, 一个类可以实现多个接口 implement
接口和接口: 继承关系, 一个接口可以实现多个接口 extends
接口可以实现多继承: 因为接口没有功能实现的代码, 就不存在不确定性,功能的实现由接口的子类来实现
网友评论