欢迎来到天天文库
浏览记录
ID:39547299
大小:15.68 KB
页数:8页
时间:2019-07-06
《C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例1.抽象类可以有实现(包括构造函数),而接口不可以有任何实现。namespaceConsoleApplication1{ classProgram { interfaceIMyInterface1//接口不可以有实现 { voidIMethod1(); voidIMethod2(); } abstractclassAMyClass1 { publicabstractvoidAMethod1();
2、 publicabstractvoidAMethod2(); publicAMyClass1()//抽象类可以构造函数,可以实现 { } publicvoidAMethod() { Console.WriteLine("AMyClass.Amethod."); } } staticvoidMain(string[]args) { } }}在上面我们定义了一个接口和一个抽象类,在抽象类中我们有一个实
3、现方法AMyClass1而在接口中这是不允许的。接口中的所有方法都必须是未实现的(包括构造函数也是不能有的)。2.抽象类中还以有成员变量(包含静态成员变量)、属性、常量和静态方法,并且他们可以是非公共的;而接口中不能有成员变量、常量、静态方法,只能有公共的属性。namespaceConsoleApplication1{ classProgram { interfaceIMyInterface1 { voidIMethod1(); voidIMethod2(); intIProperty1
4、 { set; get; } } abstractclassAMyClass1 { publicabstractvoidAMethod1(); publicabstractvoidAMethod2(); publicvoidAMethod3() { Console.WriteLine("AMyClass.Amethod."); } p
5、rivatestaticvoidAMethod4() { } privateinti; privatestaticintj; privatedoublePI=3.1514926; privateintaProperty; intAproperty { get{returnaProperty;} set{aProperty=value;} } }
6、 staticvoidMain(string[]args) { } }}正如上面的一段代码一样,在抽象类中可以有属性、常量、成员变量(包含静态成员)、静态方法,而且它们还可以是非公共的;而在接口中除了有未实现的公共方法外,只可以有属性,并且是公共的(默认,不能添加public修饰符,否则在C#中报错)。3.抽象类可以从另一个类或者一个/多个接口派生;而接口不能从另一个类派生却可以实现另一个或多个接口。namespaceConsoleApplication1{ classProgram { interfaceIMyInterface1
7、 { voidIMethod1(); voidIMethod2(); intIProperty1 { set; get; } } interfaceIMyInterface2 { vo
此文档下载收益归作者所有