C# 类 (6) -继承

继承

定义类的时候,public class Dog:Animal 表示 Dog 这个类是 继承自 Animal,冒号后面的是它的基类

继承后 的Dog 类,当调用Dog.Great() 的时候输出的是Animal 里的内容,因为Dog继承自Animal,虽然我们没定义过Dog的Greet方法,它会调用基类的方法

这两个类都会输出,Hello, I'm some sort of animal!

如果想让Dog 输出 Hello, I'm some sort of dog!' 就涉及到 重构,需要用到两个关键字 virtual override

基类里 用 virtual 表示 这个方法可以被重构
派生类 用 override 表示 我重构了这个源自基类的方法
这样两个类就会有不同的输出了

可以被重构,不表示你必须得重构它,你可以使用 base 关键字 获取基类的原生方法,我就想让dog 先输出 animal,然后再输出dog,改不改看你自己的需求
  

base表示自己的基类,这里面就是Animal


不仅是方法,其他成员基本上都被继承了,只是要注意,前几节讲过可见性Visibility,继承的类是无法访问基类里private性质的成员的,remember?

层层继承,animal - dog - puppy(小狗) 等等,一级一级继承下来,只是在C#里不能有多继承,一个类不能继承自好几个其他的类

原文地址:https://www.cnblogs.com/springbrotherhpu/p/11540445.html