
接口是行为的抽象. 它是抽象方法的集合. 使用该接口可以达到分离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
包括军舰
我的9
你收家里