inheritance constructor dart superclass extends

inheritance - ¿Cómo llamo a un súper constructor en Dart?



superclass extends (3)

¿Puedo llamar a un constructor privado de la superclase?

Sí, pero solo si la superclase y la subclase que está creando están en la misma biblioteca. (Dado que los identificadores privados son visibles en toda la biblioteca, se definen en). Los identificadores privados son aquellos que comienzan con un guión bajo.

class Foo { Foo._private(int a, int b) { //Code of private named constructor } } class Bar extends Foo { Bar(int a, int b) : super._private(a,b); }

¿Cómo llamo a un súper constructor en Dart? ¿Es posible llamar supuestos constructores?


Dado que dart admite la implementación de una clase como interfaz (interfaces implícitas ), no puede llamar al constructor principal; si lo implementa , debe usar extensiones . Si usa implementos , modifíquelo y use la solución de Eduardo Copat.


Sí, la sintaxis es cercana a C# , aquí hay un ejemplo con el constructor predeterminado y el constructor con nombre:

class Foo { Foo(int a, int b) { //Code of constructor } Foo.named(int c, int d) { //Code of named constructor } } class Bar extends Foo { Bar(int a, int b) : super(a,b); } class Baz extends Foo { Baz(int c, int d) : super.named(c,d); }