C#浅谈NET抽象类和接口的区别
2021-04-03 00:25
标签:不能 抽象类 事件 构造函数 c# 修饰符 类型 实例 特性 在类声明中使用abstract修饰符的类称为抽象类。含有一个或一个以上的抽象成员的类,必须定义为抽象类。当方法声明包含abstract修饰符时,称该方法为抽象方法,虽然抽象方法同时隐含为虚拟方法,但是它不能有virtual修饰符。声明中包含abstract修饰的属性称为抽象属性。抽象方法或属性没有方法体或属性访问器。抽象类只能是其他类的基类,抽象类不能实例化,必须在继承中实现。抽象类中可以包含非抽象成员。抽象类的目的是提供一个合适的基类,以派生其他的类在类声明中使用abstract修饰符的类称为抽象类。含有一个或一个以上的抽象成员的类,必须定义为抽象类。当方法声明包含abstract修饰符时,称该方法为抽象方法,虽然抽象方法同时隐含为虚拟方法,但是它不能有virtual修饰符。声明中包含abstract修饰的属性称为抽象属性。抽象方法或属性没有方法体或属性访问器。抽象类只能是其他类的基类,抽象类不能实例化,必须在继承中实现。抽象类中可以包含非抽象成员。抽象类的目的是提供一个合适的基类,以派生其他的类 接口是引用类型的,类似于类,和抽象类的相似之处有三点: 1、不能实例化; 2、包含未实现的方法声明; 3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员); 另外,接口有如下特性: 这是我自己总结的他的区别: C#浅谈NET抽象类和接口的区别 标签:不能 抽象类 事件 构造函数 c# 修饰符 类型 实例 特性 原文地址:http://blog.51cto.com/13758648/2131460
二、接口:
接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。