C#-接口
VS接口
- 小知识
接口和抽象类的区别。接口的可调用权限,都是默认public,不能指定其他可调用权限;抽象类的属性、域、方法用派生类实现,而且不一定都实现,接口用实现接口的类实现,接口声明的所有成员必须都实现;接口可以有实例,通过实现接口的类的实例强制转换过来,调用起来跟类实例一样,抽象类不能有实例。
- 接口
- 是一些声明,项目包括属性和方法,用类实现。
interface IPerson
{
int Age;
AddAge()
{
}
}
- 用类实现,必须实现接口的所有项目。
class Person : IPerson
{
private int Age;
Age()
{
get
{
return Age;
}
}
AddAge()
{
Age++;
}
}
- 类可实现多个接口,多个接口用逗号隔开,也是必须实现接口的所有项目。
class Person : IPerson , IAnimal
{
}
- 派生类也可实现接口,与父类和接口用逗号隔开。基类已实现的,派生类继承实现
class Person : Animal , IPerson
{
}
- 当类实现的多个接口,有同名项目时,
需指定实现的是哪个接口的项目。使用对象时,必须先创建实现接口的对象,然后把对象强制转换成接口,用接口的属性和方法,。在类已实现一个接口的同名方法时,下一个实现默认是另一个的,使用对象时也一样。
interface IPerson
{
int Age;
}
interface IAnimal
{
int Age;
}
class Person : IPerson , IAnimal
{
IPerson.Age()
{
}
IAnimal.Age()
{
}
}
创建myUnit对象
IPerson myIPerson = (IPerson ) myUnit
myIPerson.Age- 可用new隐藏基类的实现
new Age