在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承、封装、多态),今天我们来揭开他的神秘面纱。
话不多说,我们上菜。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /** * 假设我们公司有两种程序员: * java程序员指的是用java语法写程序的程序员,用Jpro这个类表示; * C#程序员指的是用C#语法写程序的程序员,用Cpro这个类来表示。 * 每个类都有一个WriteCode()方法。 * 都属于程序员,用Programmer这个类表示。 * 现在公司来了一个项目,要求派某个程序员写一个程序。 */ namespace inheritApplication { //程序员类(基类) class Programmer { public string name = "我是程序员" ; } //java程序员类 class Jpro { public string name = "java程序员" ; public string language = "我用java语法写代码" ; } //C程序员类 class Cpro { public string name = "C#程序员" ; public string language = "我用C#语法写代码" ; } //编写项目类 class Pro : Programmer //继承基类 { public void WriteProgram(Jpro program) //继承java程序员类 { Console.WriteLine( "" + program.name + ":" + name + "," + program.language + "" ); } public void WriteProgram(Cpro program) { Console.WriteLine( "" + program.name + ":" + name + "," + program.language + "" ); } } //主程序 class Program { static void Main( string [] args) { Pro p = new Pro(); Jpro p1 = new Jpro(); p.WriteProgram(p1); Cpro p2 = new Cpro(); p.WriteProgram(p2); Console.ReadKey(); } } } |
写好代码后我们运行看看效果!
很显然看出来,公司两个程序员都继承了程序员类。
总结:
父类包含了多少内容,派生类(子类)全部接受(包括属性 字段 方法等),
可以重写覆盖,使用override重写,可以使用base调用父类中的内容。
继承可以减少代码的冗余,也为程序的修改提供了很大的方便之处。
当然,如果结合接口那就完美了,下一篇中我们将提到接口的实现。
以上就是c# 继承快速入门的详细内容,更多关于c# 继承的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/xiongze520/p/10238941.html