Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpImIC 56 of 113 menu
◀ ▶

Класс interface в Dart

Обычный class с публичными членами без тел другой класс может и наследовать через extends, и реализовать через implements. Иногда нужен тип, который только реализуют, но не расширяют. Для этого в Dart есть форма interface class:

interface class Printable { void show(); } class Post implements Printable { String title = ""; void show() { print(title); } }

Класс с модификатором interface нельзя указать после extends. Наследование полей и готовых методов от такого типа недоступно - остается только реализация контракта через implements.

Проверка типа работает так же, как для обычного контракта. Если объект создан классом-реализацией, выражение is с именем interface class дает true:

Post post = Post(); print(post is Printable);

interface class подходит, когда тип нужен только как внешний контракт: его реализуют разные классы, но не делают общим родителем с кодом и полями.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить