声明接口interface(声明的接口名为对象名加 "I";继承接口后,接口中的函数必须全部在对象中实例化)
显示接口实现与隐式接口实现的适应场景
1、当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性。
2、当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。
3、隐式接口实现,类和接口都可访问接口中方法。显式接口实现(继承接口的类中“接口名.方法”实现,只能通过接口访问,如:继承的类中void Interface2.Say() { } ; 在应用的时候Interface2 interface2 = new P1();
string Name
{
get
{
return name;
}
set
{
neme = value; // value是设置变量时接口中给这个变量的赋值
}
}
抽象类
abstract声明抽象类,不能直接实例化,可以包含抽象成员,不能被密封,抽象方法必须声明在抽象类中
override实现抽象类。与接口的区别:继承时只能继承一个抽象类,可在基类中实现,可以是私有、内部、受保护的
泛型
参数T可看做占位符,不是具体类型,约定使用(结构、类、new()、<基类名>、<接口名称>、U)
泛型接口约定:
文件及数据流
索引器:
//定义索引器,name 字段的索引值为 0 ,password 字段的索引值为 1
public string this[int index]
{
get
{
if (index == 0)
return name;
else if (index == 1)
return password;
else return null;
}
set
{
if (index == 0)
name = value;
else if (index == 1)
password = value;
}
}