メソッドをオーバーライド
メソッドをオーバーライド
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD.xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta HTTP-EQUIVE="Content-Type" CONTENT="text/html;charset=utf-8" />
<title>クラスメイト</title>
<!-- メソッドをオーバーライド -->
<script src="../js/prototype.js" type="text/Javascript"></script>
<script src="../js/classmate6.js" type="text/Javascript"></script>
</head>
<body>
</body>
</html>
<!--
classmate6.js
//クラスを生成して「classmate」に設定します。
//※このサンプルでは親クラスとして使います。
var classmate1 = Class.create();
//クラスの実装をします。
classmate1.prototype = {
initialize : function(title)
{
this.title = title;
}
,
dispClassmate : function()
{
var array = new Array("江川史郎", "小沢吾郎", "加藤六三郎");
document.writeln(
'<div id="クラスメイト">' + 'タイトル:' + this.title + ' 名簿:' + array +
'</div>'
);
}
}
//ここで生成するクラスは継承するためのクラスです。
var classmate2 = Class.create();
//「extend」を用いて「classmate1」クラスを継承しています。
classmate2.prototype = Object.extend(
//継承元のクラスを「new」を使ってインスタンスの指定をします。
new classmate1,
{
//親クラスの「dispClassmate」をオーバーライドしています。
dispClassmate : function()
{
//このサンプルでは親クラスのメソッドと区別するため「九条七海」データを追加しています
var array = new Array("江川史郎", "小沢吾郎", "加藤六三郎", "九条七海");
document.writeln(
'<div id="クラスメイト">' + 'タイトル:' + this.title + ' 名簿:' + array +
'</div>'
);
}
}
);
//継承した「classmate2」クラスを使ってインスタンス化した
//オブジェクトから「dispClassmate()」メソッドを実行しています。
var obj = new classmate2('クラスメイト');
//親クラスのメソッドをオーバーライドすることにより
//親クラスの機能を置き換えた別クラスを生成できます。
//このゆうに継承クラスの機能を持ったクラスを派生クラスといいます。
//このサンプルでは親クラスのメソッドをオーバーライドした子クラスの
//メソッドが実行されます。
obj.dispClassmate();
[出力結果]
タイトル:クラスメイト 名簿:江川史郎,小沢吾郎,加藤六三郎,九条七海
--------------------------------------------------
-->
|
|