Sobes.tech
Junior — Middle

Оё имкон дорад, ки усулҳо ё хосиятҳоро дар забони Dart иваз кард?

sobes.tech AI

Ҷавоб аз AI

Бале, дар забони Dart имкон дорад, ки усулҳо ва хосиятҳоро дар синфҳои фарзандӣ дубора нависад.

Барои ин, дар синфи фарзанд бояд як усул ё getter/setter бо ҳамон номи, ки дар синфи асосӣ аст, эълон карда шавад. Тавсия дода мешавад, ки истифодаи аннотатсияи @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 имкон медиҳад, ки усулҳо ва хосиятҳоро барои иҷрои полиморфизм дубора нависад.