Ада: Разница между интерфейсом и абстрактным тегированным типом? - PullRequest
1 голос
/ 20 июня 2020

Согласно Адаю c, интерфейс в Ada определяется как «тегированный тип без компонентов и конкретных операций». Его можно использовать для множественного наследования. Напротив, абстрактный тип - это помеченный тип, предназначенный для использования в качестве предка других типов, но которому не разрешено иметь собственные объекты.

* 1002 интерфейс? Могут ли типы в противном случае использоваться как взаимозаменяемые?

1 Ответ

5 голосов
/ 21 июня 2020

Интерфейс не может иметь никаких компонентов, и все операции для одного должны быть абстрактными. Абстрактный помеченный тип может иметь компоненты и может иметь не абстрактные операции.

Конкретный тип может расширять несколько интерфейсов, но может расширять только один помеченный тип.

"IMHO, интерфейсы бесполезны . " Рэнди Брукардт, член ARG и редактор ARM

...