接口
接口是一种规范和标准,约束类的行为,是一些方法特征的集合,但是没有方法的实现,
接口利于代码的拓展和维护
接口的特性:
1、接口不可以被实例化
2、实现类必须实现接口的所有方法
3、实现类可以实现多个接口
4、接口中的变量都是静态常量
5、常作为类型使用
6、Java中的多继承
如何使用接口
1、可以使用Java接口实现
根据需求设计方法
实现所有方法
用多态的方式使用
2、代码实现
编写接口
实现接口
使用接口
3、接口关键字:implements
一个类只能有一个直接父类,可以通过implements实现多个接口,当类在继承父类的同时又实现了多个接口时,extends 关键字必须位于implements关键字之前
多个接口使用“,”分隔
4、接口表示一种能力:体闲在接口的方法上
5、面向接口编程:
关心实现类有何能力,而不关心实现细节
面向接口的约定而不考虑接口的具体实现
6、一个类可以实现多个接口,但接口不能继承类
7、接口的实现类必须实现接口的全部方法,否则必须定义为抽象类
接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
6、接口是一种约定:体现在接口名称和注释上
有些接口只有名称
方法的实现方式要通过注释来约定
C#中的接口
1、成员主要是方法、属性
2、不能包含常量、变量、构造方法和任何静态成员
3、不能显式指定任何修饰符
4、语法:
[修饰符] interface 接口名 : 父接口1,父接口2, …… {
属性定义
方法定义
}
class 类名 : 父类名,接口1,接口2, …… {
}
抽象类利于代码复用,接口利于代码维护
Java中的接口
1、属性全都是全局静态常量
2、方法都是全局抽象方法
3、无构造方法
4、一个类可以实现多个接口,非抽象类实现接口时必须实现接口中的全部方法
5、语法:
[修饰符] interface 接口名 extends 父接口1,父接口2,....{
//常量定义
//方法定义
}
class 类名 extends 父类名 implements 接口1,接口2,.....{
//类成员
}