Sobes.tech
Junior — Middle

Може ли да се презапишат методи или свойства в езика Dart?

sobes.tech AI

Отговор от AI

Да, в езика Dart може да се презаписват методи и свойства в наследяващите класове.

За това в подкласът трябва да се обяви метод или геттер/сетер със същото име като в базовия клас. Препоръчително е да се използва анотацията @override за ясно указване на презаписа.

Пример:

class Animal {
  void speak() {
    print('Звук на животно');
  }

  String get name => 'Животно';
}

class Dog extends Animal {
  @override
  void speak() {
    print('Лай');
  }

  @override
  String get name => 'Куче';
}

void main() {
  var dog = Dog();
  dog.speak(); // Ще изведе: Лай
  print(dog.name); // Ще изведе: Куче
}

По този начин Dart поддържа презаписване на методи и свойства за реализиране на полиморфизъм.