造函数:
1 /// <summary>
2 /// 文字
3 /// </summary>
4 public class Word : Information
5 {
6 public Word() { }
7 public Word(string content, int size) : base(content, size);
8 }
9 /// <summary>
10 /// 图片
11 /// </summary>
12 public class Picture : Information
13 {
14 /// <summary>
15 /// 地址
16 /// </summary>
17 public string Path { get; set; }
18
19 public Picture() { }
20 public Picture(string content, int size, string path)
21 : base(content, size)
22 {
23 this.Path = path;
24 }
25
26 /// <summary>
27 /// 图片存储到文件中,并为Path赋值
28 /// </summary>
29 public void StoreToFile()
30 {
31
32 }
33 }
base关键字除了可以复用父类非默认构造函数之外,还可以复用父类的其他非私有成员(见C#多态)。
总结:base关键字的使用方式同this关键字一样,区别在于this关键字指向本类,base关键字指向父类。
三、C#关键字:sealed
sealed关键字可以防止被继承或者被重写。
1 /// <summary>
2 /// 视频类(不能被其他类继承)
3 /// </summary>
4 public sealed class Video : Information { }
注:sealed在防止被继承时多用于工具类。
sealed防止被重写(见C#多态)。
四、C#关键字:protected
protected是专门用于继承中的访问修饰符,修饰在父类的成员上使其成员可被本类及其子类访问。
注:protected多用于修饰父类的方法。
访问修饰符直白对比:对全世界开放,使用public;只对本国开放,使用internal;只对家族开放,使用protected;只有自己知道,使用private。
五、类型之间的关系:包含
C#五大类型(类、接口、委托、枚举、结构)之间的相互嵌套即包含关系。既可以包含已定义类型也可以直接在被包含类型内定义类型。
包含的作用同继承一样也是提高代码的复用性。
1 /// <summary>
2 /// 洗衣机类
3 /// </summary>
4 public class WashingMachine
5 {
6
7 }
8 /// <summary>
9 /// 房间类
10 /// </summary>
11 public class House
12 {
13 /// <summary>
14 /// 房间类包含已定义的洗衣机类
15 /// </summary>
16 public WashingMachine washingMachine { get; set; }
17
18 /// <summary>
19 /// 直接在房间类中定义空调类
20 /// </summary>
21 public class AirConditioner
22 {
23
24 }
25
26 /// <summary>
27 /// 直接在房间类中定义性别枚举
28 /// </summary>
29 public enum Sex { man, woman }
30 }