C# interface与abstract class区别
2014-04-09 18:19
274 查看
C# interface与abstract class区别
一、abstract class
abstract 声明抽象类抽象方法,一个类中有抽象方法,那么这个类就是抽象类了。所谓的抽象方法,就是不含主体(不提供实现方法),必须由继承者重写。因此,抽象类不可实例化,只能通过继承被子类重写。
实例代码:
输出:
奥迪
car
沪A 00000
二 interface
声明接口,只提供一些方法规约,不提供任何实现;不能用public、abstract等修饰,无字段、常量,无构造函数。
示例代码:
输出结果:
car
fly
三、区别
1.interface中不能有字段,而abstract class可以有;
2.interface中不能有public等修饰符,而abstract class 可以有。
3.interface 可以实现多继承
一、abstract class
abstract 声明抽象类抽象方法,一个类中有抽象方法,那么这个类就是抽象类了。所谓的抽象方法,就是不含主体(不提供实现方法),必须由继承者重写。因此,抽象类不可实例化,只能通过继承被子类重写。
实例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public abstract class Bus { public abstract void getName(); public virtual void getTypes() { Console.WriteLine("bus"); } public void getID()//一般方法,若在派生类中重写,须使用new关键字 { Console.WriteLine("沪A 00000"); } } public class car : Bus { public override void getName() { Console.WriteLine("奥迪"); } public override void getTypes() { Console.WriteLine("car"); } } class Program { static void Main(string[] args) { car mycar = new car(); mycar.getName(); mycar.getTypes(); mycar.getID(); } } }
输出:
奥迪
car
沪A 00000
二 interface
声明接口,只提供一些方法规约,不提供任何实现;不能用public、abstract等修饰,无字段、常量,无构造函数。
示例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public interface Bus { void getTypes(); } public interface plane { void getfunc(); } public class car : Bus { public void getTypes() { Console.WriteLine("car"); } public void getfunc() { Console.WriteLine("fly"); } } class Program { static void Main(string[] args) { car mycar = new car(); mycar.getTypes(); mycar.getfunc(); } } }
输出结果:
car
fly
三、区别
1.interface中不能有字段,而abstract class可以有;
2.interface中不能有public等修饰符,而abstract class 可以有。
3.interface 可以实现多继承
相关文章推荐
- C#.NET常见问题(FAQ)-interface接口如何理解
- 接口(Interface)的作用,asp.net(C#)
- C#中接口(interface)的理解
- (转帖)C#编程利器:接口(Interface)
- C# System.Net.NetworkInformation 命名空间学习之NetworkInterface 类获取IP,DNS,Gateway,Mask, MAC等网络相关信息
- 【温故知新】c#抽象类abstract与接口interface
- C#中接口(interface)的理解
- c#中的interface abstract与virtual
- C# - 引用类型、Class、Interface、泛型
- 关于对C#的Interface理解
- C# abstract virtual interface的区别(付static、override用法)
- c# 接口 interface
- [No0000FA]C# 接口(Interface)
- C#中的interface没那么简单
- [C#] interface与delegate的效能比较
- 我理解c#中的interface abstract virtual override和new
- C#中的Abstract、Virtual、Interface理解
- the Differences between abstract class & interface in C#接口和抽象类的区别
- 对c#中abstract class、virtual、interface的理解
- new,virtual,override,interface,delegate,event-------------C#——方法实现总结