在Java中提供了一个关键字 interface ,用这个关键字我们可以定义出一个特殊的结构:接口
1. 接口不能创建对象
• 注意接口不能创建对象,接口是用来被实现的,实现接口的类被称为实现类
2.实现类写法格式
修饰符 class 实现类 implements 接口1,接口2,接口3,
一个类可以实现多个接口,实现类实现多个接口,就必须重写完全部接口的全部抽象方法,否则定义成抽象类。
3.接口中定义的成员变量都是常量,成员方法在接口中默认为抽象方法
public interface A { //接口中定义的成员变量都是常量 //成员变量(常量) String name="hei"; //成员方法(在接口中默认为抽象方法) void testa1(); void testa2(); }
4.使用接口有什么好处?
• 可以解决单继承的问题,通过接口,我们可以让一个类去继承一个父类的同时,去实现多个接口,这样可以拓展自己的功能
• 为什么要通过接口,来扩展自己的功能呢?
因为通过接口去找,通过你implements的接口,就可以显性的知道你是谁,从而就可以放心的把你当作谁来用了
• 一个类可以实现多个接口,同样,一个接口也可以被多个类实现。
这样做的好处是 我们的程序就可以面向接口编程了,这样就可以很方便的灵活切换各种业务实现了。
5.接口的注意事项
1.一个接口继承多个接口,如果多个接口中存在|方法签名|冲突,则此时不支持多继承,如下:
interface I{ void Test1(); } interface J{ String Test1(); }
2.一个类实现多个接口,如果多个接口中存在方法冲突,则此时不支持多实现
class E implements I,J{}
3.一个类继承了父类,有同时实现了接口,接口和父类有同名的默认方法,实现类会优先使用父类的
class X{} class E extends X implements A{}
注:先继承 再接口
4.
interface A{} interface B{} interface C{} //接口是多继承的 interface D extends A,B,C{} //实现类E只需要实现一个D,就可以拥有A,B,C,D的功能,便于实现类去实现 class E implements D{}