継承2(extends)

イテル on 08 2, 2009

090705-one31

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

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

読んで字のごとくです。

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

ということ。

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

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が呼び出された

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

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

Comments (1)

 

Leave a Reply