Tag: inheritance

接口的多重inheritance歧义

我们都知道有关多重遗传的钻石问题 – A / \ BC \ / D 这个问题描述了D类的模糊情况。 如果A类有一个方法并且B和/或C两个/都覆盖了该方法,则D覆盖哪个版本的方法? 这个问题是否也适用于Java中的接口? 如果没有,Java接口如何解决这个问题?

Parent可以调用Child Class方法吗?

在这里提到 A是预编译的Java类(我也有源文件)B是我正在创作的Java类 B延伸A. 如何实现逻辑,以便A可以调用B具有的方法。 以下是条件: 我不想触摸A(仅作为最后一个选项,但如果没有其他解决方案存在)。 我不想用reflection。 如上所述,如果需要,我可以修改A.无论哪种方式,可能的解决方案是什么?

表每子类inheritance关系:如何在不加载任何子类的情况下查询Parent类??? (hibernate)

假设每个子类的表inheritance关系可以在下面描述(来自wikibooks.org – 见这里 ) 注意父类不是抽象的 @Entity @Inheritance(strategy=InheritanceType.JOINED) public class Project { @Id private long id; // Other properties } @Entity @Table(name=”LARGEPROJECT”) public class LargeProject extends Project { private BigDecimal budget; } @Entity @Table(name=”SMALLPROJECT”) public class SmallProject extends Project { } 我有一个场景 , 我只需要检索Parent类 。 由于性能问题,我该怎么做才能运行HQL查询以便检索Parent类而只是父类而不加载任何子类?

最好的做法是将多个动作映射到同一个类struts 2.3

我正在使用struts开发联系人管理器(添加,删除,修改,打印)。 我想将多个动作(将多个动作映射到同一个类struts 2.3)映射到同一个类( ContactManager )。 我想知道它是否正确或是否需要为每个动作分别编写动作?

从扩展外部类本身的内部类中访问外部类成员

在下面显示的代码片段中,内部类inheritance外部类本身。 package test; class TestInnerClass { private String value; public TestInnerClass(String value) { this.value = value; } private String getValue() { return value; } public void callShowValue() { new InnerClass(“Another value”).showValue(); } private final class InnerClass extends TestInnerClass { public InnerClass(String value) { super(value); } public void showValue() { System.out.println(getValue()); System.out.println(value); } } } public […]

在Java中,是否有合理的理由从类构造函数中调用非final方法?

我最近花了几分钟调试生产代码中的一个问题,最终结果是由一个在其构造函数中调用抽象方法的类引起的,并且该方法的子类实现试图使用一个尚未生成的子类字段已初始化(下面列出了一个说明这一点的例子) 在研究这个问题时,我偶然发现了这个问题 ,并对Jon Skeet的回答很感兴趣: 一般来说,在构造函数中调用非final方法是一个坏主意,正是因为这个原因 – 子类构造函数体还没有被执行,所以你有效地在一个尚未完全调用的环境中调用一个方法初始化。 这让我感到疑惑,是否有合理的理由从构造函数中调用非final或抽象方法? 或者它几乎总是设计糟糕的迹象? 例 public class SSCCE { static abstract class A { public A() { method(); // Not good; field arr in B will be null at this point! } abstract void method(); } static class B extends A { final String[] arr = new String[] { “foo”, […]

Java:使用import或显式包/类名?

我正在编写一个非常基本的应用程序,扩展了Swing JFrame。 明确引用之间有什么区别: public class LineTest extends javax.swing.JFrame { … 或预先导入课程: import javax.swing.JFrame; public class LineTest extends JFrame { … 何时(和为什么)你会使用一种技术而不是另一种?

Java:如何查找是否从基类重写了一个方法?

如何查明子类是否覆盖了某个方法? 例如, public class Test { static public class B { public String m() {return “From B”;}; } static public class B1 extends B { } static public class B2 extends B { public String m() {return “from B2”;}; } /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) { B […]

java中多级inheritance中构造函数调用的顺序

//: c07:Sandwich.java // Order of constructor calls. // package c07; // import com.bruceeckel.simpletest.*; import java.util.*; class Meal { Meal() { System.out.println(“Meal()”); } } class Bread { Bread() { System.out.println(“Bread()”); } } class Cheese { Cheese() { System.out.println(“Cheese()”); } } class Lettuce { Lettuce() { System.out.println(“Lettuce()”); } } class Lunch extends Meal { Lunch() { System.out.println(“Lunch()”); […]

是否在Java中inheritance了同步?

我有超类Point和一个synchronized方法draw() 。 如果我在其中覆盖方法draw()或者我必须总是写它, Point的子类是否会inheritancesynchronized ?