62
Pull Up Constructor Body
Goal
Initialization code repeated across subclass constructors moves into the parent class's constructor and is called via super.
Before the refactoring
class Manager extends Employee { constructor(n, s) { this.name = n; this.salary = s; } }
class Engineer extends Employee { constructor(n, s) { this.name = n; this.salary = s; } }After the refactoringclass Employee {
constructor(name, salary) { this.name = name; this.salary = salary; }
}
class Manager extends Employee {}
class Engineer extends Employee {}Savings
One canonical home for parent-state init; new subclasses inherit the setup for free; bug fixes apply uniformly.
Note
If only some subclasses share the init logic, pulling it up forces the others to opt out — verify the body is genuinely common.