java简述抽象类和接口的区别

Python020

java简述抽象类和接口的区别,第1张

抽象类和接口的区别主要如下:

实现方式不同。类型通过 extends 继承(或叫做扩展)一个抽象类,但是通过implements 实现一个接口;

方法定义方式不同。抽象类的抽象方法要通过 abstract 关键字声明,而接口的方法不用特别声明;

抽象类可以有private或protect字段和方法,而接口里面只能包含public方法(隐含,不用声明,默认就是public)

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

更多可以参考:

Interface vs Abstract Class in Java: What's the Difference?

抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。

接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。

扩展资料:

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

参考资料:抽象类百度百科 接口百度百科

它们的区别主要有以下几点:

1、 接口是抽象类的变体,接口比抽象类更加抽象,接口中所有的方法都是抽象的。

2、每个类只能继承一个抽象类,但是可以实现多个接口。

3、抽象类中不一定都是抽象方法,抽象的而抽象类可以实现部分方法。但是接口中方法必须为public修饰的、抽象的不能实现具体的法。

4、接口中基本数据类型为static而抽象类不是的。

扩展资料:

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。

在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。

参考资料:

百度百科—接口

百度百科—抽象类