我们知道,访问基类的实例成员可以:
1. 用base关键字;
2. 对基类的引用。
但是在访问抽象类的实例成员时,可以直接用派生类的实例对象直接调用。
直接访问抽象基类的实例成员
用关键字 abstract 在创建一个抽象类时,可以包含抽象的成员和非抽成员,例如:
abstract class MyBase
{
//抽象方法Print
abstract public void PrintAbs();
//非抽象方法
public void PrintNotAbs()
{
Console.WriteLine("Not a abstract method");
}
}
class MyDerived : MyBase
{
//重写抽象方法
public override void PrintAbs()
{
Console.WriteLine("override the abstract method");
}
}
下面在住函数中测试派生类的实例调用基类的非抽象方法:
class Program
{
static void Main(string[] args)
{
MyDerived mytest = new MyDerived();
//调用基类的非抽象方法
mytest.PrintNotAbs();
//调用基类的抽象方法的重写版本
mytest.PrintAbs();
Console.ReadKey();
}
输出结果为:
Not a abstract method
override the abstract method