当前位置: 首页 > 知识库问答 >
问题:

“除非重写,否则此类方法将被继承”是什么意思

施自明
2023-03-14

当JUnit5 explain@Test时,文档https://junit.org/junit5/docs/current/user-guide/#writing-他说

这些方法是继承的,除非它们被重写

这句话是什么意思?我没有看到任何与方法继承相关的东西

共有1个答案

周翼
2023-03-14

这意味着,如果您有一个测试类A,其中您定义了一个用@Test注释的方法test,JUnit将在一个测试类B中执行test继承A。如果在类B中重写test,则不适用此操作。

例子:

public class A {
  @Test
  public void testA() {
    // ...
  }

  @Test
  public void testB() {
    // ...
  }
}
public class B extends A {
  @Override
  public void testB() {
    // ...
  }
}

执行测试类A时,将执行testAtestB。当执行B时,testA被继承并将被执行。但是,testB被重写,并且没有用@Test注释,并且不会执行。

 类似资料:
  • 如何/可以重写来自非继承类的方法?其次,有没有比“非继承类”更好的术语? 我有一个“扩展”JFrame的类,需要从JPanel重写paintComponent。怎么做?或者它可以扩展JPanel,并需要访问方法,如setTitle()、setResizable()和setDefaultCloseOperation();

  • 我正在编写一个带有对象的游戏,我想根据它的类使用不同的命令。我有一个超级类“项目”,一个子类“工具扩展项目”和“锤子扩展工具”。在项目超类(抽象)中,我有一个抽象方法“doCommand”,我在工具中覆盖了它。这很好用,我现在在工具中有一个有效的“doCommand”。但是当我想在 Hammer 中覆盖这个“doCommand”时,它只是使用工具的“doCommand”。 这来自调用方法的类的一部

  • 问题内容: 我有两个课,和。它们看起来像这样: 此错误指向Field的: 我希望首先调用Background init ()。要将“ a,b”传递给Fields的 init (),Field会分配a和b,然后将其中包含三个0的列表分配给field。然后让Background的 init ()继续,然后调用它自己的buildField()并用包含c的列表覆盖self.field。 似乎我还没有完全理

  • 我创建了一个(个人、学生、员工、教职员工)类。Person必须将Student和Employee分为子类。Employee有两个子类:教员和职员。我已经完成了所有的编码,他们工作得很好,除了我的驱动程序类TestPerson程序给出了编译错误 注:一个测试程序,创建一个人、学生、员工、教职员工,并调用他们的toString方法。 驱动程序类TestPerson的错误。以下是java:- **我只是

  • 我们有两个班级。 我试图弄清楚函数 是否会被视为或。我尝试使用关键字,它说该方法未被覆盖。但我想知道 关键字是否仅在父类中的函数被编写为函数时才有效,并且在上述情况下是否可以将该函数视为被覆盖。 另外,我想知道重写方法是否总是意味着后期绑定/运行时多态?

  • 我有一个扩展了B类的a类。 A是这样定义的,它也覆盖了B的方法: B是这样定义的: 因此,如果我初始化A的一个对象,构造函数将调用调用方法doSomething()的超类之一。但哪一个会被处决?B的实现还是A中被重写的实现?