java接口interface
一.接口:
1.接口也是一种“引用数据类型”,编译之后也是一个class字节码文件。
2.接口是完全抽象的(抽象类是半抽象)或者也可以说接口是特殊的抽象类。
3.接口的语法?
4.一个接口可以继承多个接口(支持多继承 用 ,隔开)
5.接口中只包含两部分内容(没有其他内容):
一部分是“常量” 一部分是:抽象方法
6.接口中所有的元素都是public修饰的(都是公开的)
7.接口中的常量的public static final可以省略。
8.接口中的抽象方法定义时:public abstract 修饰符可以省略。
9.接口中的方法都是抽象方法,所以接口中的方法不能有方法体。
10.接口中随便写一个变量就是常量
二.小结:
接口中方法不能有方法体
一个非抽象的类,实现接口的时候,必须将接口中所有方法实现
一个类中可以实现多个接口
extends和implements可以共存,extends在前,implement在后
使用接口,写代码的时候,可以使用多态(父类型引用指向子类型对象)
三.接口的基础语法:
1.类和类之间叫做继承,类和接口之间叫做实现。 //也可以看成“继承”
继承使用extends关键字完成
实现用implements关键字完成
注意:当一个非抽象的类实现(继承)接口的话,必须将接口中所有的抽象方法全部实现(覆盖、重写)而且接口里的方法都是public的
一个类可以继承多个接口,但是要重写接口里的方法。(加public 和大括号)这种机制弥补了java中的那个缺陷?
java中类和类只支持单继承,实际上单继承是为了简单而出现的,现实世界中存在多继承,java中的接口弥补了单继承带来的缺陷。
接口a和接口b虽然没有继承关系,但是写代码的时候,可以互转。
编译器没意见,但是运行时可能出现:classCastException;
之前有个结论:
无论向上转型还是向下转型,两种类型之间必须要有继承关系,没有继承关系编译器会报错(这句话不适合在接口方面)
向下转型养成好习惯,转型之前先if+instanceof进行判断。
- 点赞
- 收藏
- 关注作者
评论(0)