PHP のポリモーフィズムに関する質問
この投稿は chenlong451 によって最終編集されました (2013-03-28 23:51:16)
Wikipedia にはポリモーフィズムの定義があります:
オブジェクト指向言語では、インターフェイスの複数の異なる実装はポリモーフィズムです
この記事をお読みください:
http://www.cnblogs.com/tecs27/archive/2012/03/13/2394028.html
この記事では 2 つのコード例が示されています。プロセス制御を使用するコード セグメントは次のとおりです。
<br />
class painter{ //定义油漆工类<br />
public function paintbrush(){ //定义油漆工动作<br />
echo "油漆工正在刷漆!\n";<br />
}<br />
}<br />
<br />
class typist{ //定义打字员类<br />
public function typed(){ //定义打字员工作<br />
echo "打字员正在打字!\n";<br />
}<br />
}<br />
<br />
function printworking($obj){ //定义处理类<br />
if($obj instanceof painter){ //若对象是油漆工类,则显示油漆工动作<br />
$obj->paintbrush();<br />
}elseif($obj instanceof typist){ //若对象是打字员类,则显示打字员动作<br />
$obj->typed();<br />
}else{ //若非以上类,则显示出错信息<br />
echo "Error: 对象错误!";<br />
}<br />
}<br />
<br />
printworking(new painter()); //显示员工工作<br />
printworking(new typist()); //显示员工工作<br />
ログイン後にコピー
ポリモーフィズムを示すために、ポリモーフィズムを使用したコード スニペットを以下に示します。
クラス従業員{//従業員の親クラスを定義します<br>
保護された関数 working(){//従業員の作業の定義はサブクラスに実装する必要があります<br>
echo "このメソッドはサブクラスでオーバーロードする必要があります!";<br>
}<br>
<br>
}<br>
<br>
class Painter extends member{//Define Painter class<br>
パブリック関数 working(){//継承された作業メソッドを実装します<br>
echo "画家が絵を描いています!n";<br>
}<br>
}<br>
<br>
class typist extendsemployee{//タイピスト クラスを定義します<br>
パブリック関数 working(){<br>
echo "タイピストが入力中です! n";
ログイン後にコピー