Essential ActionScript3.0 読書メモ 第45回 オーバーライドされたメソッドを呼び出す

サブクラスがインスタンスメソッドをオーバーライドした時、スーパークラスのバージョンのメソッドは失われていない。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()となる。

コメントを残す

コメントを残す