abstract:
1. 不能实例化,只能通过子类实例化
2. abstract方法只能在abstract类中,abstract类被继承时,子类必须实现所有abstract方法
interface:
1. 全部方法不能有实体,没有修饰符
2. 除方法,属性,索引器和事件外,不能有其他类型的成员
virtual方法可以有函数体,但abstract没有
override和new都是用来重写的,只是new是隐藏方式的,它会根据声明的类型确定调用基类还是子类的函数,比如
class Program
{
static void Main(string[] args)
{
contact ct1 = new class2();
contact ct2 = new class2();
ct1.prinf();
ct2.prinf();
}
}
abstract public class contact
{
public virtual void prinf()
{
Console.WriteLine ("这是虚方法");
}
}
public class class1 : contact
{
public override void prinf()
{
Console.WriteLine ("这是新的方法");
}
}
public class class2 : contact
{
public new void prinf()
{
Console.WriteLine ("这是另一个新的方法");
}
}
delegate: 函数指针类型 (参考链接)