抽象类

java – 是否存在Abstract类优于Interface的情况

我有一个场景,其中有几个子类有类似的实现和一些额外的方法,实现与每个子类不同.我假设抽象类对于这种情况是一个不错的选择.但是如果抽象类实现包含所有方法声明的接口会更好.或者我应该坚持使用抽象类.简而言之,我想知道我应该在层次结构顶部而不是接口上更喜欢抽象类的场景.解决方法如果您的子类与抽象类具有is-a关系,请使用抽象类.您可以同时拥有抽象类和接口–指定实现的抽象类,以及指定API的接口.集合框架

java – 抽象类或接口中的public static final字段

我有很多抽象类的子类,每个子类声明一个具有相同名称的公共静态final字段.我想在抽象超类中使用这个字段而不初始化它,并希望每个子类都被强制初始化它.我正在考虑这个问题,因为抽象类的所有子类都声明了一个名为UNIQUE_ID的公共静态最终字符串字段,并且每个子类都必须声明具有该名称的字段.我希望我的问题很清楚,如果不是,请告诉我.可以或多或少地与此相提并论吗?

Java – 抽象类和子类的二进制兼容性

在Java中,我定义了一个抽象类,其中包含具体和抽象方法,并且必须由第三方开发人员独立创建子类.只是为了确定:我是否可以对抽象类进行任何更改,这些更改与源类兼容,但不兼容二进制?

Java克隆抽象对象

快)[编辑]要完成clone()的另一个含义可以是当你的抽象类实现Serialazable.在那里,您将您的对象写入光盘,并创建具有光盘值的副本.

java – 从抽象类派生时如何服从equals()的合约

约书亚·布洛赫在他的书“有效Java”中写道,当派生类向检查添加附加字段时,关于equals()的合同发生的陷阱.通常这样会破坏对称性,但Bloch指出“你可以在一个抽象类的子类中添加一个值组件而不会违反equals约定”.显然,这是真的,因为没有抽象类的实例,所以没有违反的对称性.但是其他子类呢?

Java中的抽象类不需要从其实现接口中实现任何方法.为什么?

我们来看看下面的Java代码片段.由于接口Sum只包含一个方法showSum();正在由抽象类Super实现,应该有必要对抽象类Super来实现该方法showSum();.编译器根本就没有抱怨,程序运行良好,根本没有问题.为什么?类似地,非抽象最终类Calculate正在实现Mul接口,并包含方法showMul()的实际实现;在其实现界面中呈现.在这种情况下,如果该方法在类Calculate中显示Mul(),则会发出编译时错误.为什么同样的事情不适用于那个抽象类Super?