Appart of having a constructors mechanism similarly to Java and C#, Dart supports the concept of factory constructors. We can define a base class (can also be an abstract class) and provide a factory constructor to be used when a default concrete instance is required.

abstract class IRobot 
{
  String talk(String str);
  factory IRobot() 
  {
    return new Android();
  }
}

class Android implements IRobot 
{
  talk(str) 
  {
    print("### $str");
  }
}

void main() 
{
  IRobot ob = new IRobot();
  ob.talk("bla bla bla");
}

The following video clip overviews this code sample, shows its execution and explains it.

Leave a Reply

Your email address will not be published. Required fields are marked *