Tag: inheritance

validation在子类上调用此方法时是否调用了重写的超类方法

我将使用此示例显示我的问题: 我有一个方法foo的类。 该类有一个子类,它会覆盖此方法。 子类’方法调用超类’方法。 我可以validation吗? 我不想测试超类中的foo 。 我只需要validation它是否被调用。 我知道重构可能会有所帮助( 有利于组合而非inheritance等 ),但我无法做到这一点。 有没有办法实现我的需要? 以下是我尝试过的简单示例 package tmp; import org.junit.Test; import org.mockito.Mockito; import static org.mockito.Mockito.times; public class Example { @Test public void test() { // given ChildClass childClass = new ChildClass(); ChildClass spyChildClass = Mockito.spy(childClass); // when spyChildClass.foo(100); // then Mockito.verify((BaseClass) spyChildClass, times(1)).foo(101); } } abstract class BaseClass […]

扩展JFrame总是一个坏主意吗?

在开发Java Swing GUI时,扩展JFrame总是一个坏主意吗? 那么JPanel或其他JComponents呢? 还有什么让它变坏?

用java中的变量inheritance

任何人都可以澄清我。 这里实例方法被覆盖但变量不被覆盖。 输出为: B 10 class A{ int i=10; public void name(){ System.out.println(“A”); } } class B extends A{ int i=20; public void name(){ System.out.println(“B”); } } public class HelloWorld { public static void main(String[] args){ A a = new B(); a.name(); System.out.println(ai); } }

Java:类是自身的子类吗?

如果一个类的内部类扩展了外部类,那么它可以是它自身的“子类”,因此类以某种方式扩展自身而不抛出任何exception。 那么,它真的意味着一个类本身也是一个子类吗? 谢谢。

带抽象参数和inheritance的Java抽象方法

我最近遇到了一个API和一个实现的问题,其中出现了以下类型的代码: API是一个抽象类: public abstract class A { public A sum(A a) { System.out.println(“A.sum(A) called”); return null; } } 实现是一个简单的类: public class B extends A { public B sum(B b) { System.out.println(“B.sum(B) called”); return null; } } 说到使用它我写道: public class Main { public static void main(String args[]) { B b = new B(); A basa = […]

JPAinheritance

嗨,我是JPA的新手,我无法理解它如何处理inheritance。 我有一个特定的问题我需要在不改变DB方案的情况下解决,但是如果你找不到解决方案,我会很感激使用不同的DB方案的解决方案建议(欢迎使用Hibernate / TopLink解决方案)。 如果我不清楚或您需要更多信息,请告诉我。 提前致谢! 我有这个数据库: TABLE Fruit Id Varchar (10) Primary Key size Varchar (10) fruit_type Varchar(10) TABLE Apple Id Varchar (10) Primary Key Foreign Key references Fruit.Id Apple_Property Varchar(10) 到目前为止我的实体看起来像这样: @Entity @Inheritance(strategy=InheritanceType.JOINED) @DiscriminatorColumn(name=”fruit_type”, discriminatorType=DiscriminatorType.Char) @DiscriminatorValue(value=”fruit”) public class Fruit implements Serializable { @Id protected String Id; protected String size; } @Entity @DiscriminatorValue(value=”apple”) //@PrimaryKeyJoinColumn(name=”Id” […]

具有generics参数基础的Javagenerics参数

我想知道在Java中是否有一个优雅的解决方案(除了显而易见的一个 – 声明一个不同的/显式函数。这是代码: private static HashMap nameStringIndexMap = new HashMap(); private static HashMap nameBufferIndexMap = new HashMap(); // and a function private static String newName(Object object, HashMap nameIndexMap){ …. } 问题是我无法将nameStringIndexMap或nameBufferIndexMap参数传递给函数。 除了做另一个明确需要HashMap 或HashMap 参数的函数之外,我不知道更优雅的解决方案。 我的问题是:这可以用更优雅的解决方案/使用generics或类似的东西来制作吗? 谢谢, 尤利安

Java中的类inheritance问题,有和没有参数的构造函数

我正在学习Java(二年级IT学生),我遇到了一些问题。 inheritance要准确。 这是代码: class Bazowa { public Bazowa(int i) { System.out.println(“konstruktor bazowy 1”); } public Bazowa(int j, int k) { System.out.println(“konstruktor bazowy 2”); } } class Pochodna extends Bazowa { /* Pochodna() { System.out.println(“konstruktor pochodny bez parametru”); } */ Pochodna(int i) { super(i); System.out.println(“konstruktor pochodny z parametrem”); } } 因此,Pochodna类扩展了Bazowa类,我的练习是创建一个超类,它只包含带参数的构造函数和一个具有两种类型(有和没有)的子类。 当我在Pochodna课程中评论第一个构造函数时,一切正常,但我真的不知道如何在不评论该部分的情况下使其工作。 我想我必须以某种方式从第一个调用构造函数,但不知道如何做到这一点。 保罗,谢谢任何帮助

使用不相关的返回类型inheritance方法

我有以下代码片段 public class Test { static interface I1 { I1 m(); } static interface I2 { I2 m(); } static interface I12 extends I1,I2 { I12 m(); } public static void main(String [] args) throws Exception { } } 当我尝试编译它时,我收到了错误。 Test.java:12: types Test.I2 and Test.I1 are incompatible; both define m(), but with unrelated return types. […]

Java中的间接子类无法访问超类中的受保护成员

为什么在Java中,超类的受保护成员是不可被另一个包中的间接子类访问的? 我知道不同包中的直接子类可以访问超类的受保护成员。 我认为任何子类都可以访问其inheritance的受保护成员。 编辑 抱歉新手错误,子类可以访问间接超类的受保护成员。