Абстрактные классы и интерфейсы в UML

Абстрактный класс

Абстрактный класс - это класс, который нельзя реализовать непосредственно. Вместо этого создается экземпляр подкласса. Обычно абстрактный класс имеет одну или более абстрактных операций. У абстрактной операции нет реализации, это чистое объявление, которые клиенты могут привязать к абстрактному классу.

Наиболее распространенным способом обозначения абстрактного класса или операции в UML является написание их имен курсивом. Можно также сделать свойства абстрактными, определяя абстрактное свойство или методы доступа. Если курсив сложно изобразить (например, если вы рисуете на доске), можно прибегнуть к метке {abstract}.

Для указания класса как абстрактного, выделите класс и выделите чекбокс isAbstract.

Для указания метода как абстрактного, выделите метод и выделите чекбокс isAbstract.

Интерфейс

Интерфейс - это класс, не имеющий реализации, то есть вся его функциональность абстрактна. Интерфейсы прямо соответствуют интерфейсам в Java или C# и являются общей идиомой в других типизированных языках. Интерфейс обозначается стереотипом (ключевым словом) <<interface>>.

Обозначение интерфейса в StarUML

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

Для того, чтобы преобразовать его в классический интерфейс согласно стандарту UML, выделите интерфейс и в панели Editors выберите Format -> Label.

После этого снимите выделение с пункта "Suppress Operations"

Пример использования абстрактного класса и интерфейса

Графическое представление в формате UML

Исходный код

interface MyInterface{
    void interfaceMethod();
}

abstract class MyAbstractClass implements MyInterface {
    abstract void abstractMethod();
}

class MyClass extends MyAbstractClass {

    @Override
    void abstractMethod() {}

    @Override
    public void interfaceMethod() {}
}

Last updated