使用基类的引用
- 将派生类对象强制转换为基类对象 --> 产生的变量只能访问基类的成员。
Child child = new();
Parent parent = (Parent)child;
虚方法和重写方法
- 派生类的基类的方法必须拥有相同的签名和返回类型。
- 派生类的基类的方法必须拥有相同的可访问性。
- 不能重写static方法。(可以屏蔽)
- 使用基类的引用调用被重写的方法时,会执行被标记为override的最高派生版本。
internal class Program
{
static void Main()
{
Child child = new();
Parent parent = (Parent)child;
parent.Print();
}
}
public class Parent
{
virtual public void Print()
{
Console.WriteLine("Parent");
}
}
public class Child : Parent
{
override public void Print()
{
Console.WriteLine("Child");
}
}