class Person {
late String name;
late int age;
Person();
Person.ap(this.name, this.age);
}
class Employee extends Person {
Employee(String name, int age) : super.ap(name, age); // This works
// This is giving error. The method 'ap' isn't defined in a superclass of 'Employee'.
Employee(String name, int age) {
super.ap(name, age);
}
}
What's the difference of calling unnamed constructor using super or inside the parenthesis?
CodePudding user response:
You are making two same-named constructors. Do something like this
class Employee extends Person {
Employee(String name, int age) : super.ap(name, age);
Employee.foo(String name, int age): super.ap(name, age);
}
CodePudding user response:
try this, just create a setter function named ap
in the Person class
class Person {
late String name;
late int age;
Person();
Person.ap(this.name, this.age);
ap(String name, int age){ //add this
this.name=name;
this.age=age;
}
}
class Employee extends Person {
//here ap is name constructor
Employee(String name, int age) : super.ap(name, age);
//here ap is setter function in the person class
Employee.ap(String name, int age) {
super.ap(name, age);
}
}