継承2(extends)

090705-one31

昨日に引き続き、継承を学習する。

静的メソッドと静的変数は継承されない

読んで字のごとくです。

[as3]
public class iteru{
public static function hand(){
trace("iteru.hand()が呼び出されました。")
}
}
public class koIteru extends iteru{
public function koIteru(){
koIteru.hand(); //→エラーになる!!!
}
}
[/as3]

ということ。

インスタンスメソッドのオーバーライド

[as3]
public class Iteru{
//スーパークラス内でのインスタンスメソッドの宣言
public function hand(){
trace ("Iteruのhandが呼び出された")
}
}

//クラスKoIteruのコード
//handをオーバーライドする
public class KoIteru extends Iteru{
override public function hand(){
trace("KoIteruのhandが呼び出された");
}
}

//使用すると・・・
var iteruInst = new Iteru();
iteruInst.hand(); //表示:Iteruのhandが呼び出された

var koIteruInst = new KoIteru();
koIteruInst.hand(); //表示:KoIteruのhandが呼び出された
[/as3]

というように、Iteruのhandを呼び出せばIteruのhand処理を実行し、
KoIteruを呼び出せば、Iteruのhandを修正した処理、
KoIteruのhand処理が実行される。

なにやら継承からレベルが何段階か上がってきて、
わかりにくくなってきた。
続きはまた明日。