接口
基本概念
接口时行为的抽象规范
关键字 interface
接口申明规范
不包含成员变量
只包含方法、属性、索引器、事件
成员不能被实现
成员可以不用写访问修饰符,但是不能是私有的
接口不能继承类,但是可以继承另一个接口
接口的使用规范
类可以继承多个接口
类继承接口后,必须实现接口中的所有成员
接口时用来继承的
接口不能被实例化,但是可以作为容器来存储对象
接口的申明
接口是抽象行为的“基类”
接口命名规范 帕斯卡命名法前面加个I
//interface 接口名
//{
//}
interface IFly
{
//成员可以不用写访问修饰符,但是不能是私有的
void Fly();
//成员属性不能被实现,get和set中不能有语句块
string Name
{
get;
set;
}
int this[int index]
{
get;
set;
}
//事件和委托
event Action doSomething;
}
//类可以继承一个类和n个接口
//继承了接口后必须实现其中的内容,而且必须是public的
class Animal
{
}
class Person : Animal,IFlay
{
//实现的接口函数,可以加上virtual再在子类重写
//public virtual void Fly()
public void Fly()
{
}
public string Name
{
get;
set;
}
public int this[int index]
{
get
{
return 0;
}
set
{
}
}
public event Action doSomething;
}
//接口也适用里氏替换原则
Ifly f = new Person();
接口继承接口后,不需要去实现
等类继承了接口后,类自己去实现所有内容
显式实现接口
当一个类继承两个接口,但是接口中存在着同名方法时才会用
显式实现接口时不能写访问修饰符
interface IAtk
{
void Atk();
}
interface ISuperAtk
{
void Atk();
}
class Player:IAtk,ISuperAtk
{
void IAtk.Atk()
{
}
void ISuperAtk.Atk()
{
}
}
Player p = new Player();
(p as IAtk).Atk();
(p as ISuperAtk).Atk();

浙公网安备 33010602011771号