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 refactoring
class 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.