Java中的抽象类层次结构

时间:2018-05-07 19:12:15

标签: java inheritance abstract-class

不确定为什么我需要,但是在Java中是否可以使用具有自己的抽象子类的具体子类的抽象超级?假设抽象最终会在其下面有具体的类。

2 个答案:

答案 0 :(得分:1)

是的,你可以让具体类扩展抽象类,反之亦然 - 抽象类扩展具体类。

public abstract class A {

}

public class B extends A {

}

public abstract class C extends B {

}

答案 1 :(得分:-1)

这不是一个非常糟糕的做法。事件如果Java允许它,从UML图的角度来看它没有任何意义。

如果某个类没有实现预期的所有行为,则该类为abstract。然后在具体的子类中,它是具体的,因为它实现了所需的所有行为。那么,拥有一个abstract子子类并没有任何意义。它是具体类的特化,意味着它具有该对象所需的所有协议。

换句话说,具体概念的专业化不可能是抽象的。