抽象类和接口的几个注意
首先是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!");
}
};