サブクラスがインスタンスメソッドをオーバーライドした時、スーパークラスのバージョンのメソッドは失われていない。super演算子を使うことで、サブクラスのインスタンスからアクセスできるようになっている。
publiic class Rectangle {
    protected var w = 0;
    protected var h = 0;

    public function setSize (newW, newH) {
        w = newW;
        h = newH;
    }
}

public class Square extends Rectangle {
    override public function setSize (newW, newH) {
        if (newW == newH) {
            // スーパークラスのsetSize()をサブクラスから呼び出し
            super.setSize(newW, newH);
        }
    }
}
オーバーライドによって、スーパークラスのメソッドの振る舞いを無効化することもできる。サブクラスで、親クラスのメソッドをオーバーライドした上で、オーバーライドメソッドの中身を空にしておけばよい。


今日の進捗:2787→2810/20168

<余談>

PHPでサブクラスからスーパークラスのメソッドを呼び出す際は、parentキーワードを使う。上記コード例なら、parent::setSize()となる。