一个尝试错误的人生,不但比无所事事的人生更荣耀,并且更有意义。
目录
一、继承
语法:
class 子类: 父类1,父类2
{
}
二、多态
抽象类和虚方法共同实现动态多态性。
1. 虚方法:
当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法。
虚方法是使用 virtual 关键字声明。
public virtual void Voice()
{
Console.WriteLine("动物的叫声");
}
此父类中的函数可以被子类中的函数重写(override)
例:
public override void Voice()
{
Console.WriteLine("喵喵喵");
}
2.虚方法与抽象方法的区别
- 抽象方法只能在抽象类中声明,而虚方法,不用。
- 抽象方法是只有方法名、参数等,而没有实际的方法体的方法。是一种强制派生类覆盖的方法,否则派生类将不能被实例化。
public abstract class Animal { public abstract void eat(); }
虚方法是有方法体的方法。
public abstract class Animal { public abstract void eat() { Console.WriteLine("不同的动物吃什么?"); } }
-
抽象方法,子类中必须重写父类中的抽象方法。而虚方法,子类可以重写。
3. 关键字 sealed
在类定义前面放置关键字 sealed,可以将类声明为密封类。当一个类被声明为 sealed 时,它不能被继承。
注意:抽象类不能被声明为 sealed。