设为首页 加入收藏

TOP

C#面向对象之继承(二)
2019-09-23 11:16:37 】 浏览:75
Tags:面向 对象 继承
造函数:

 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 }

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Threads(异步和多线程) 下一篇表达式树练习实践:C# 循环与循环..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目