希望我的博客能给喜欢unity3d的朋友们带来用处。
今天我们接着讲昨天的继承,当然也会新添内容:多态。
virtual和override
virtual 用在基类中,指定一个虚方法(属性),表示这个方法(属性)可以重写。
override 用在派生类中,表示对基类虚方法(属性)的重写。
Overload 重载
Overload和override的区别:
Overload:重载
(1)在一个类中定义的若干方法;
(2)所有的方法名相同,但参数类型或个数不同;
(3)只有参数有关,与返回类型无关。
Override:重写
(1)在继承关系中;
(2)子类定义了父类同名的方法,参数类型或个数最好完全一样;
(3)访问权限不能更严格
base关键字
Base关键字用于从派生类中访问基类的成员:调用基类上已被其他方法重写的方法,指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问其中进行。
- class Animal
- {
- public virtual void Print()
- {
- Console.WriteLine("父类的Print()");
- }
- //不想让子类继承,方法不想重写时,就在virtual前面加sealed关键字
- //public base virtual void Print2()
- //{
- // Console.WriteLine("父类的Print2()");
- //}