C# 继承
C# 是面向对象的高级编程语言。
继承是面向对象的特征之一。
所谓继承,字面意义。通俗而言 子承父业。
现有两个类
A,B二类,分别有两个字段,有两个方法,有两个构造函数。
这两个类实际意义没有多少。 但是记住,高级语言就因为面向对象才是高级语言。面向对象基本就是现实中的事务的高级抽象。
可以想象这个AB二类是这个独立的人,每个人都是独立ID,独立自我介绍。
所以有两个独立的class。
Class A { public string Name=>"Class A"; public A()=>Console.WriteLine("这是A类的初始化,也就是构造函数"); public void ID()=>Console.WriteLine($"我的id是{Name}"); } Class B { public string Name=>"Class B"; public B()=>Console.WriteLine("这是A类的初始化,也就是构造函数"); public void ID()=>Console.WriteLine($"我的id是{Name}"); }
但是,之前说过的面向对象是现实事务的高级抽象。
抽象!
如果 就按照上面的方式来建立事务,恐怕写一个软件会把人给累死。
所以,继承的意义就存在的。
高度抽象【针对现实事务】
就好比这个两个类中都一个String 的公共属性。 如果我们只写一遍就好了。
那么思考一下,继承。
emm,AB都有Name,
如果 AB都有一个父亲,父亲有一个名为Name的遗产。【不考虑财产分割,那是别的问题】
那么AB是不是都会有了?
那么 使用继承该如何使用呢?
Class NameList { public string Name{get;set;} } Class A:NameList { public A()=>Console.WriteLine("这是A类的初始化,也就是构造函数"); public void ID()=>Console.WriteLine($"我的id是{Name}"); } Class B:Namelist { public B()=>Console.WriteLine("这是A类的初始化,也就是构造函数"); public void ID()=>Console.WriteLine($"我的id是{Name}"); }
See,只打了一遍就可以在两个不同的类中进行使用了。
OK,那么这两个类中还有一个叫 ID的方法,都是一模一样,是不是也可以使用继承呢?
嗯 是可以!
那么我们在改一下
class NameList { public string Name { get; set; } public void ID() => Console.WriteLine($"我的id是{Name}"); } class A : NameList { public A() => Console.WriteLine("这是A类的初始化,也就是构造函数"); } class B : NameList { public B() => Console.WriteLine("这是A类的初始化,也就是构造函数"); }
到这里为止,继承的基本使用就介绍完了。
继承的符号:是冒号
不过要记住,如果继承类,那么这个继承的类叫做父类,或者基类【也就是文中NameList】,也只能有有一个父类