继承
定义类的时候,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#里不能有多继承,一个类不能继承自好几个其他的类