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 მხარს უჭერს მეთოდებისა და თვისებების გადაფარვას პოლიმორფიზმის განხორციელებისთვის.