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.







