2.2.3.1 声明抽象类
abstract class Horse
{
abstract public void ChaseAfterBadGuys();
}
为基类使用abstract关键字,编辑器会阻止此基类被直接实例化。
2.2.3.2 定义封装类
与抽象类对立,不能作为基类的类。
sealed class Horse
{
}
不允许存在子类,考虑可靠性跟商业目的,性能考虑。
2.2.3.3 与基类通讯
C#允许使用base关键字访问最近的基类成员。
base关键字只在类内部有效--不能在类之外调用它。
2.2.3.4 继承跟所有权比较
继承是用类类模拟实际问题的重要工具,在IS-A 关系建模时继承很有用。如:
奶牛是一种(IS-A)陆地动物。
但在将继承用于为所有权--HAS-A关系建模时应格外小心。如:
篮球队有一个(HAS-A)室内运动场。
房子有一个(HAS-A)地基。
2.2.4 object基类
C#中的所有类型实质上都是从object类派生出来的。
2.2.5 类成员
字段、常数、方法、构造函数、析构函数、属性、运算符、时间、索引器。
2.2.5.1 字段
变量? static readonly
2.2.5.2 常数
常数跟字段类似,但是常数的值仅可在便是时指定,平时不允许更改。
//静态常量(隐式是静态的)
public const int compiletimeConstant = 1;
//动态常量
public static readonly runtimeConstant = 1;
2.2.5.3 方法
C#中的方法声明都是有一个可访问性级别、一个返回类型、一个方法名称、一个参数列表构成的。
public int GetNextRecordId(string TableName)
{
}
方法参数
参数修饰符
关键字ref用来通过引用传递参数,从而使得被调用的方法能够更新参数的值
out、params
重载方法