Модификатор interface
Модификатор interface применяется к классу
и превращает его в интерфейс. Такой класс
можно только реализовать с помощью ключевого
слова implements, но нельзя наследовать
от него через extends. Это позволяет
задавать контракт, которому должны следовать
другие классы, не раскрывая деталей реализации.
Модификатор указывается перед ключевым словом
class и не принимает параметров.
Синтаксис
interface class ClassName
{
// body
}
Пример
Давайте объявим интерфейсный класс Shape
и реализуем его в классе Circle:
interface class Shape
{
double area()
{
return 0;
}
}
class Circle implements Shape
{
double radius;
Circle(this.radius);
@override
double area()
{
return 3.14 * radius * radius;
}
}
void main()
{
Circle circle = Circle(2);
print(circle.area());
}
Результат выполнения кода:
12.56
Пример
Попытка наследовать интерфейсный класс через
extends приведет к ошибке компиляции:
interface class Shape
{
double area()
{
return 0;
}
}
class Circle extends Shape
{
// compile error
}
void main()
{
print('error');
}
Результат выполнения кода:
Error: The class 'Shape' can't be extended because it's an interface class.
Смотрите также
-
модификатор
abstract,
который создает абстрактный класс -
модификатор
implements,
который реализует интерфейс -
модификатор
extends,
который наследует класс -
модификатор
interface class,
который описывает интерфейсный класс