接口:接口就是公共契约.
接口的关键字:interface
接口和类属于同级关系,都属于c#中的编程单位.
接口也被称作纯洁的抽象类
接口特点:
1.不能有字段
2.接口内不能有修饰符
3.接口中不能有方法体(方法实现)
4.接口同样不可以被直接实例化
5.接口里面成员总是公共的
6.接口中可以有属性,但是不能有修饰符
7.接口中可以有索引器/事件声明
8.接口中声明的方法,子类实现的时候虽然也用override关键字,但是记住不属于重写.这里不能把
override显示的声明出来.
开发准则:尽量多用接口.
能用接口的不用抽象类,能用抽象类不用虚方法.
动态多态性.
using System;
using System.Collections;
namespace OOP接口
{
interface IInput
{
void Read();
}
interface IInputTwo
{
void Read();
}
class Test:IInput,IInputTwo
{
public string name;
//如果接口出现方法同名情况需要以下列方式实现,但是调用的时候
//要用动态多态性调用,非常规调用方式
// public void IInput.Read(){
// Console.WriteLine ("1111");
// }
//
// public void IInputTwo.Read(){
// Console.WriteLine ("2222");
// }
public void Read(){
Console.WriteLine ("1111");
}
// public void Read(){
// Console.WriteLine ("2222");
// }
public IInput T(){
Test t = new Test ();
t.name = "测试返回接口实例";
return t;
}
}
class MainClass
{
public static void Main (string[] args)
{
// new Test ().Read ();
//返回接口实例
Test t = new Test();
Console.WriteLine (t.name);
Test t1 = (Test)t.T ();
Console.WriteLine (t1.name);
// Test t = new Test ();
}
}
}