C#若干关键字解析 (abstract, interface, sealed, virtual, override, new, delegate)

来源:互联网 发布:金天鹅软件下载 编辑:程序博客网 时间:2024/06/05 17:50

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: 函数指针类型 (参考链接)


0 0