概念:一种标准,一种规范;是使用者和实现者之间的一种约定。
接口的语法:
1.interface 接口名 { }
2.接口不能创建对象,但是可以声明引用。
3.接口会生成.class文件
4.接口不能定义构造方法
5.接口中的属性默认为公开静态常量(public static final)
6.接口中的方法默认为公开抽象方法(public abstract)
注意:接口不是类
实现类的定义
//实现类:MyClass
//IA为接口
//MyClass实现类IA接口
class MyClass implements IA{
}
1.实现类必须实现接口中所有方法
2.IA ia = new MyClass(); //多态
接口之间的继承关系
1.接口与接口之间是多继承
interface IC extends IA,IB,...{ }
2.实现类和接口之间多实现
class MyClass implements IC,ID,...{ }
3.实现类可以继承于一个父类同时,实现多个接口
class MyClass extends Super implements IC,ID,...{ }
继承关系造成的影响
在进行强制类型转换时,互相转换的双方,若有一方是接口类型,则一定编译通过;
但是若引用中指向的实际对象类型和目标类型不一致,则运行报错;
报错信息:java.lang.ClassCastException(类型转换异常)
接口的好处
1.扩充子类的能力:
接口代表一种约定,一种能力;主要功能定义在父类中,次要功能定义在接口中
2.解耦合
使实现者和使用者进行分离,实现弱耦合的效果
接口回调
先有接口的使用者,再有接口实现者