抽象类和接口的几个注意

首先是abstract类的abstract method必须得override,如
abstract class Template
{
    public Template(string msg)
    {
        Console.WriteLine(msg);
    }
    public void printNormal()
    {
        Console.WriteLine("Normal print method!");
    }
    abstract protected void printAbstract();
};
class derivedC : Template
{
    public derivedC(string msg) : base(msg) { }
    protected override void printAbstract()
    {
        Console.WriteLine("DerivedC prints abstract!");
    }
    public void prints()
    {
        this.printAbstract();
    }
};
其次,对于接口,如果是多重接口派生的一个类,且多接口中含有相同的函数名,则在派生类中必须明确所覆写的函数究竟是哪个接口的,如:
interface Ia
{
    void print();
}

interface Ib
{
    void print();
}

class ImplementC : Ia, Ib
{
    public ImplementC()
    {
        Console.WriteLine("Object generated!");
    }
    void Ia.print()
    {
        Console.WriteLine("print of Ia!");
    }
    void Ib.print()
    {
        Console.WriteLine("print of Ib!");
    }
};

posted @ 2006-08-01 10:29  xiaoyixy  阅读(280)  评论(1编辑  收藏  举报