我有一个抽象类,这个类是在她的子类中扩展的:
小例子:
public abstract class Foo{
//plus constructor and other stuff.
public abstract void differentTypeOfImplementation();
public void doSomething(Foo foo){
//do something with the generic Foo object passed
}
}
我想听听你对这种实施方式的看法,
问候。
在抽象类中实现方法是非常有效和可接受的设计。如果这个方法实现对它的所有子类都是必要的,那么这就是要走的路。然而,在您的示例中——方法的签名使其有点可疑——看起来您没有以任何方式使用超类状态。这意味着您也可以将此方法声明为静态
。
这个问题可能太开放了,但是你的解决方案非常好。
另一种方法是,您可以使用不同的TypeOfImplementation()创建一个接口,然后使用doSomething创建一个实用程序类。这样,你的子类也可以从其他类扩展。但是,如果子类偶尔会覆盖doSomething,或者doSomething需要访问对象的内部状态,那么您所拥有的是完全有效的。
继承一个可以实现的普通超类有什么不同吗? atm我有一个名为的抽象类,我有/扩展这个。 abstractcar中的一个字段设置为"私有int容量" 但是在子类“小型汽车”中,当我输入“容量”作为构造函数中使用的变量时,它说“容量在抽象汽车中有私有访问” 我想: > 子类继承超类的所有字段和方法? 我现在该怎么进行?
问题内容: 我可以以某种方式在抽象类上对一组注释进行分组,并且扩展该类的每个类都已自动分配了这些注释? 至少以下情况不起作用: 问题答案: 答案是不 除非注释类型具有@Inherited元注释,否则不会继承Java注释:https : //docs.oracle.com/javase/7/docs/api/java/lang/annotation/Inherited.html。 Spring的注释
问题内容: 通过使用抽象类,我们可以实现与接口相同的功能,那么为什么Java不允许以下代码? 我知道可以通过仅使用接口来实现多重继承,但是上面的代码与接口所做的事情相同。 问题答案: 不允许这样做,因为您可以对抽象类做更多的事情。允许多重继承是没有意义的,前提是您只在可以使用接口的情况下才使用抽象类。 仅将抽象类用于无法通过接口执行的操作会更简单,在这种情况下,您将无法使用两个抽象父类。 注意:使
我目前正在尝试使用JaxB,但对于一个相对简单的示例,我并不是很成功。我的示例如下: 我所有的尝试(甚至编组)都失败了。我浏览了BlaiseDoughan的博客,包括http://blog.bdoughan.com/2010/11/jaxb-and-inheritance-using-xsitype.html但他们似乎对我的例子都没有帮助。我很可能误用了他的例子。在我看来,我的示例应该是JaxB中
我能以某种方式将一组注释分组到一个抽象类上,并且每个扩展该类的类都自动分配了这些注释吗? 至少以下内容不起作用:
FAQs in section [22]: [22.1] 将接口和实现分离的作用是什么? [22.2] 在C++中如何分离接口和实现(就象 Modula-2)? [22.3] 什么是 ABC? [22.4] 什么是“纯虚”成员函数? [22.5] 如何为包含指向(抽象)基类的指针的类定义拷贝构造函数或赋值操作符? 22.1 将接口和实现分离的作用是什么? 接口是公司最有价值的资源。设计接口比用一堆