抽象类和接口有什么异同? 抽象类和接口有什么异同


抽象类和接口有什么异同? 抽象类和接口有什么异同

文章插图
抽象类和接口的区别:
1、抽象类要被子类继承,接口要被类实现 。
2、接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现 。
3、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量 。
4、接口是设计的结果,抽象类是重构的结果 。
5、抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高 。
6、抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量 。
7、抽象类主要用来抽象类别,接口主要用来抽象功能 。
【抽象类和接口有什么异同? 抽象类和接口有什么异同】
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象 。通常在编程语句中用 abstract 修饰的类是抽象类 。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象 。抽象类是不完整的,它只能用作基类 。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色 。