Абстрактная иерархия классов в Java - PullRequest
0 голосов
/ 07 мая 2018

Не знаю, зачем мне это нужно, но возможно ли в Java иметь абстрактное супер с конкретным подклассом, у которого есть свой собственный абстрактный субмарин?Предполагая, что в итоге у абстракта будут конкретные классы.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Нет, это действительно плохая практика. Событие, если Java это позволяет, не имеет никакого смысла с точки зрения UML-диаграмм.

Класс равен abstract, если он не реализует все ожидаемое поведение. Затем в конкретном подклассе он конкретен, поскольку он реализует все необходимое поведение. Тогда наличие подкласса abstract не имеет никакого смысла. Это специализация конкретного класса, то есть он имеет весь протокол, необходимый для этого объекта.

Другими словами, специализация конкретного понятия не может быть абстрактной.

0 голосов
/ 07 мая 2018

Да, у вас может быть как конкретный класс, расширяющий абстрактный класс, так и наоборот - абстрактный класс, расширяющий конкретный класс.

public abstract class A {

}

public class B extends A {

}

public abstract class C extends B {

}
...