Sobes.tech
Junior — Middle

Kokia priežastis, kodėl versijoje Dart 2.12 buvo įvesta raktažodis abstract?

sobes.tech AI

Atsakymas iš AI

„abstract“ raktinis žodis Dart 2.12 buvo įvestas aiškiai pažymėti abstrakčias klases. Anksčiau abstrakčios klasės buvo apibrėžiamos netiesiogiai, pavyzdžiui, jei klasė turėjo abstrakčius metodus (be įgyvendinimo). Įvedus abstract, galima:

  • Aiškiai pažymėti klasę kaip abstrakčią, tai pagerina kodo skaitomumą.
  • Užkirsti kelią tokių klasių tiesioginiam instancijavimui.
  • Pagerinti statinio analizatoriaus ir kūrimo įrankių palaikymą.

Naudojimo pavyzdys:

abstract class Animal {
  void makeSound(); // abstraktus metodas
}

class Dog extends Animal {
  @override
  void makeSound() {
    print('Bark');
  }
}

Čia Animal yra abstrakti klasė, kurios tiesiogiai instancijuoti negalima.