But this is just new syntax to generate the same sort of construct.
class Summer {
constructor() { this.sum = 0; }
add(n) { this.sum += n; }
get() { return this.sum; }
}
let s1 = new Summer();
s1.add(6); s1.add(7); s1.add(99);
let s2 = new Summer();
s2.add(3); s2.add(6); s2.add(1); s2.add(9);
console.log(s1.get() + " " + s2.get())
class Aver extends Summer {
constructor() { super(); this.count = 0; }
add(n) { super.add(n); this.count++; }
av() { return this.sum / this.count; }
}
let a1 = new Aver();
a1.add(4); a1.add(11); a1.add(5);
console.log(a1.sum + " " + a1.av())