一、抽象类:
在类声明中使用abstract修饰符的类称为抽象类。含有一个或一个以上的抽象成员的类,必须定义为抽象类。当方法声明包含abstract修饰符时,称该方法为抽象方法,虽然抽象方法同时隐含为虚拟方法,但是它不能有virtual修饰符。声明中包含abstract修饰的属性称为抽象属性。抽象方法或属性没有方法体或属性访问器。抽象类只能是其他类的基类,抽象类不能实例化,必须在继承中实现。抽象类中可以包含非抽象成员。抽象类的目的是提供一个合适的基类,以派生其他的类在类声明中使用abstract修饰符的类称为抽象类。含有一个或一个以上的抽象成员的类,必须定义为抽象类。当方法声明包含abstract修饰符时,称该方法为抽象方法,虽然抽象方法同时隐含为虚拟方法,但是它不能有virtual修饰符。声明中包含abstract修饰的属性称为抽象属性。抽象方法或属性没有方法体或属性访问器。抽象类只能是其他类的基类,抽象类不能实例化,必须在继承中实现。抽象类中可以包含非抽象成员。抽象类的目的是提供一个合适的基类,以派生其他的类
二、接口:
接口是引用类型的,类似于类,和抽象类的相似之处有三点:
1、不能实例化;
2、包含未实现的方法声明;
3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);
另外,接口有如下特性:
接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。
这是我自己总结的他的区别:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。