博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象类和接口的比较
阅读量:5162 次
发布时间:2019-06-13

本文共 594 字,大约阅读时间需要 1 分钟。

参考:

1、抽象类:

  抽象类不能创建实例,只能作为父类被继承。

1)抽象方法是只有函数声明,不包含实现,可以看成是没有具体实现的虚方法

2)抽象类不能实例化

3)抽象类可以包含但不一定包含抽象属性和抽象方法,但是有抽象方法,就一定要把这个类声明为抽象类

4)抽象类的具体实现子类一定要全部实现抽象基类类的抽象方法

5)抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖他们。

 

2、接口:

1)接口不能被实例化

2)接口只能包含方法声明

3)接口的成员包括方法、属性、索引器、事件

4)  接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

 

3、区别:

1)抽象类可以有构造函数,接口中不能有构造函数

2)抽象类中可以有普通成员变量,接口汇总没有普通成员变量

3)抽象类中可以包含静态方法,接口中不能包含静态方法

4)  一个类可以实现多个接口,但是只能继承一个抽象类

5)接口可以被多重实现,抽象类只能被单一继承。

6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法不必实现,而在抽象类的子类中实现接口中方法

 

4、相同点:

1)都可以被继承

2)都不能实例化

3)都可以包含方法声明

4)具体(非抽象)派生类必须实现未实现的方法

 

转载于:https://www.cnblogs.com/juneyss/p/11383352.html

你可能感兴趣的文章
hdu 3183 A Magic Lamp 【RMQ】
查看>>
Android有没有好用点的模拟器
查看>>
UVA725 Division 除法【暴力】
查看>>
关于注解
查看>>
暑期训练狂刷系列——poj 3468 A Simple Problem with Integers (线段树+区间更新)
查看>>
Poj 2112 Optimal Milking (多重匹配+传递闭包+二分)
查看>>
JMS - ConnectionMetaData
查看>>
通用权限管理系统底层的软删除数据的处理方法介绍
查看>>
LeetCode 347 Top K Frequent Elements
查看>>
MySort(选做)
查看>>
ASP.NET -- WebForm -- Cookie的使用
查看>>
XStream的使用
查看>>
在centos6,7 上编译安装内核
查看>>
Razor 视图
查看>>
【LuoguP1169 bzoj1057】[ZJOI2007]棋盘制作
查看>>
java编码
查看>>
Spring 整合 Shiro
查看>>
英语考研:翻译建模(1)
查看>>
Scrapy:学习笔记(1)——XPath
查看>>
Python生成随机字符串
查看>>