其实接口就语法来说 基本没什么可说的
/// <summary>
/// 接口的命名 最好以 Ixxxx 开头 算是规范吧
/// 定义返回值 和 参数 不能实现方法
/// 不能定义字段 但是 可以定义属性
/// </summary>
interface Iaaa
{
//string aaa; 这样会报错
void aaa(string aa);
string bbb { set; } //可以定义属性
}
/// <summary>
/// 接口可以继承接口
/// 但是这里作者说 接口的继承和普通的继承不是一样
/// 是契约形式 这里我也说不清楚
/// </summary>
interface Ibbb : Iaaa
{
//void aaa(string aa);
}
/// <summary>
/// 这里继承与接口的方法 必须显示标记为 public
/// </summary>
public class bbb : Ibbb
{
public void aaa(string aa)
{
throw new NotImplementedException();
}
string Iaaa.bbb
{
set { throw new NotImplementedException(); }
}
}
关于 显示实现接口 和 实现接口
void IDisposable.Dispose()
{
Console.WriteLine("b1");
}
显示实现接口,不允许指定访问性,但是编译器会将他自动设置为 private
public void Dispose()
{
Console.WriteLine("a1");
}
其实重点还是在接口和基类的使用上
这里是书上说的4点
1. IS-A vs. CAN-DO “属于” 和 “能做”
属于 就是 基类 和 派生类 有从属关系
能做 就是多个类都有的某个功能 比如 ToJson 就应该提升为接口
public class 基类 : ToJson { }
public class 派生类 : 基类 { }
2.易于使用
从基类中继承, 基类本来就能提供很多方法
相对的 从接口中继承 就一个一个实现吧
3.一致性的实现
还是为基类说话, 强调基类中的默认实现
4.版本控制
同样是为基类说话
基类新加入一个方法,下面的类只用使用就完了
而接口 啊哈 一个类一个类的改吧
以上就是书上的对 基类和接口的使用下的定义
其实个人感觉
基类就像一个实体,像一个标准的事物,比如
public class 动物 {}
他下面可以派生人,鸟之类的
而接口更偏向于功能和规范
比如动物都能呼吸,都有年龄
interface breathe {}
interface age {}
这就是我使用他们的标准~
over~
2011年9月18日19:41:03