在JAVA中,接口和抽象类有何异同?

发布网友 发布时间:2022-04-01 20:42

我来回答

2个回答

懂视网 时间:2022-04-02 01:04

抽象类和接口的区别:

  

  1、抽象类要被子类继承,接口要被类实现。

  

  2、接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现。

  

  3、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

  

  4、接口是设计的结果,抽象类是重构的结果。

  

  5、抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。

  

  6、抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。

  

  7、抽象类主要用来抽象类别,接口主要用来抽象功能。

  

  抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

热心网友 时间:2022-04-01 22:12

一个类可以有多个接口 只能有继承一个父类
抽象类可以有构造方法,接口中不能有构造方法。
抽象类中可以有普通成员变量,接口中没有普通成员变量
接口里边全部方法都必须是abstract的 抽象类的可以有实现了的方法
抽象类中的抽象方法的访问类型可以是public,protected 但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型
抽象类中可以包含静态方法,接口中不能包含静态方法
抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com