相同点:
1、都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承
2、都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法
不同点:
|
接口 |
抽象类 |
|
作为系统与外界交互的窗口,体现的是一种规范 |
作为系统中多个子类共同的父类,体现的是一种模版设计 |
|
只能包含抽象方法 |
可以包含普通的已经实现的方法 |
|
不能定义静态方法 |
可以定义静态方法 |
|
只能定义静态常量Field,不能定义普通Field |
既可以定义普通Field,也可以定义静态常量Field |
|
不包含构造器 |
包含构造器 |
|
不能包含初始化块 |
可以包含初始化快 |
|
一个类可以实现多个接口 |
一个类最多只能有一个直接父类 |

本文对比了接口与抽象类的特点,包括它们的相似之处及关键差异。从规范性和模板设计的角度出发,阐述了两者在软件设计中的作用,并详细列举了在方法定义、静态方法、字段声明、构造器等方面的不同。
4891

被折叠的 条评论
为什么被折叠?



