一、接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
二、接口的特性:
1.接口不能被实例化
2.实现类必须实现接口的所有方法
3.实现类可以实现多个接口
4.接口中的常量都是静态常量(static final)
三、接口:
1.语法:
public interface 接口名{}
2.实现接口的语法:
public class 类名 implements 接口名{}
3.需要注意的是,实现接口的同时必须得重写接口里面的方法。
4.一个类只能有一个父类,但是可以实现多个接口。
四、接口表示的是一种约定:
接口体现了约定和实现相分离的原则,通过面向接口编程,可以降低代码间的耦合性。提高代码的可扩展性和可维护性。
五、接口表示一种能力:
一个类实现了某个接口,就表示这个类具备了某种能力。
六、C#中使用接口:
1.语法:访问修饰符 interface 接口名:父接口1,父接口2……{
//属性定义
//方法定义
}
2.实现接口:
class 类名 :父类,接口1,接口2{
} 3.接口之间可以通过":"来实现继承,接口可以实现多继承,但接口不能继承类。 4.接口定义0个或者多个成员,成员主要是方法、属性和索引器,接口汇总不能包含常量,变量或构造方法,也不能包含任何静态成员。 5.接口中的成员访问权限是public 6.接口的命名一般都是I开头。
七、java与C#接口具有以下区别:
1.java中接口通过extends集成父接口,类通过implements实现接口,C#通过冒号来实现这两个功能。
2.java接口中的成员变量(属性)一律是常量,自动用public static final 修饰,C#接口中不允许存在成员变量,但可以有属性。
3.java接口中属性和方法都可以使用public 修饰,C#默认是public,但不允许显示使用public修饰。
4.java接口中可以定义静态常量和方法,但是C#接口中不允许包含任何静态成员。