谈论接口和抽象类之间的区别吗?

电脑杂谈  发布时间:2020-04-28 15:08:59  来源:网络整理

接口抽象类_接口和抽象类的区别_接口类和抽象类

接口是行为的抽象. 它是抽象方法的集合. 使用该接口可以达到分离API定义和实现的目的.

The

接口类和抽象类_接口和抽象类的区别_接口抽象类

接口无法实例化;它不能包含任何非常数成员,并且任何字段在public static final的含义中都是隐含的;同时,没有非静态方法实现,这意味着它可以是抽象方法,也可以是静态方法. 在Java标准库中,定义了许多接口,例如java.util.List.

抽象类是无法实例化的类. 用abstract关键字修改类,其目的主要是代码重用. 除了无法实例化之外,它与常规Java类的形式没有太大不同. 可以有一个或多个抽象方法,也可以没有抽象方法. 抽象类通常用于提取相关Java类的通用方法实现或通用成员变量,然后通过继承来实现代码重用的目的.

接口类和抽象类_接口和抽象类的区别_接口抽象类

在Java标准库(例如收集框架)中,许多常见部分被提取到抽象类中,例如java.util.AbstractList. Java类使用Implements关键字实现接口,而继承的抽象类则使用extend关键字. 我们可以参考Java标准库中的ArrayList.

单一责任(Single Responsibility),类或对象最好仅具有单一责任,如果您发现某个类在程序设计中承担多重义务,则可以考虑拆分.

接口类和抽象类_接口和抽象类的区别_接口抽象类

打开和关闭原理(“打开-关闭”,“扩展可打开”,“更改可关闭”)接口抽象类,设计应可扩展且可修改. 换句话说,程序设计应确保平滑的可伸缩性,并尝试避免由于添加类似功能而修改现有实现,从而减少回归问题.

Liskov替代(Liskov Substitution),它是面向对象的基本元素之一. 在抽象继承关系时,无论可以在何处使用父类或基类,都可以使用子类.

接口和抽象类的区别_接口抽象类_接口类和抽象类

接口隔离. 在设计类和接口时,如果在接口中定义太多方法接口抽象类,则其子类可能会面临困境. 只有一些方法对此有意义. 它破坏了程序的凝聚力.

依赖倒置,实体应该依靠抽象而不是实现. 换句话说,高级模块不应依赖于低级模块,而应基于抽象. 践行这一原则是确保产品代码之间正确耦合的法宝.

1支持多重继承: 接口支持;抽象类不支持;类不支持; 2支持抽象功能: 接口语义支持;抽象类支持;类不支持; 3 allow函数的实现: 不允许接口;抽象类支持;允许上课; 4允许的实例化: 不允许接口;不允许使用抽象类;允许上课; 5允许部分函数实现: 不允许接口;允许抽象类;不允许上课. 6定义: 接口只能包含公共函数和公共静态最终常量;抽象类和类没有限制. 7何时使用: 当您想支持多重继承时,或使用接口来定义类型时;当您计划为“模板”类提供部分实现,并使用某些需要延迟的功能时,请使用抽象类;当您计划提供完整的具体实现时,请使用该类. 一方面,在实际的项目开发过程中,业务需求频繁,并且需要满足打开和关闭的原则,即小至模块,大至架构,都需要具有良好的性能. 可扩展性;另一方面,软件通常是一个协作开发过程;由于团队成员的水平参差不齐,在这方面有很多陷阱. 可以通过早期设计审查和代码审查来提高代码质量.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-191891-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...