Java-Abstract方法没有被覆盖

时间:2017-03-31 17:29:26

标签: java inheritance abstract

您能否帮助我今天在我的测试中提出的一个真/假问题:

如果子类继承了abstract方法但未覆盖,则整个子类变为abstract。这会是true还是false

4 个答案:

答案 0 :(得分:1)

看看:

https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

它说:

  

当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果没有,那么子类也必须声明为abstract。

答案 1 :(得分:0)

我们本周也在课堂上学习抽象课程,作为每周讨论帖子的一部分,我们必须回答Stack Overflow上提出的问题,所以这是我的尝试。

Oracle States:

  

当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果没有,那么子类也必须声明为abstract。

真/假问题的答案是正确的,因为子类方法没有被重写,子类继承了一个抽象方法,因此默认情况下抽象只有抽象类可以包含抽象方法。

  

如果一个类包含抽象方法,那么该类本身必须声明为abstract。

因此,可以认为整个子类"变为"抽象也是。

答案 2 :(得分:-1)

  

如果抽象方法由子类继承但未被覆盖   整个子类变得抽象。

答案为false,因为该课程不会自动或神奇地变为abstract 而是您需要将其标记为abstract您没有覆盖一个或多个abstract方法。

相同的概念即使对于interface也适用,即,如果您没有从abstract实施(覆盖)一个或多个interface方法,那么您需要将班级标记为abstract

因此,纠正您的句子是,如果一个abstract方法由子类继承但未被覆盖,则整个子类需要标记为abstract (这是true

答案 3 :(得分:-1)

仅仅因为它是真/假并不意味着你不能附上解释。假设你的老师知道他在做什么并且公平(这可能不是一个有效的假设),那么明确解释为什么你选择你所做的答案可能会有所帮助。如果测试是在线或扫描仪,你不能在测试本身的边缘做出解释,请给他发电子邮件。

我会选择“true”,并解释它实际上 make 类抽象,但它确实使得抽象是必要的。如果老师在一个写得不好的问题上寻找“真实”,那么你已经回答了“真实”。如果老师在一个技巧问题上寻找“假”,那么你已经证明你已经看到了这个伎俩。我认为这最大化了你获得信用的机会。