Do You PHP?    
Search Engine Optimization  php5 powerd  Valid XHTML 1.0!  Valid CSS!  このサイトのはてなブックマーク数 



last updated
2002/05/12

counter hits
since 1999/11/06


PHP4のクラスとJavaのクラス - オーバーロード

PHP4からオブジェクト指向的な機能・動作が改善されていますが、オブジェクト指向言語であるJavaとどの程度挙動が異なるか、ちょっとずつまとめてみようかと思います。基本的には、PHPマニュアルに記載されていなくて、「どうなるの?」と思ったことを主にやっています。

今回は、「オーバーロード」についてです。

メソッドのオーバーロードに関してもコンストラクタと同様、1つしか定義できません。overload関数というモノも用意されていますが、どちらかというとoverride(乗っ取り?)するための関数のようで、全く別物です。

以下のサンプルではあえてオーバーロードさせたように見せていますが、引数なしのdoSomethingメソッドはコールされていません。

●OverloadTest.php

<?php
class ClassA
{
    function doSomething()
    {
        echo "doSomething<br>";
    }

    function doSomething($param = "")
    {
        echo "doSomething with param: " . $param . "<br>";
    }
}

$obj = new ClassA();

// 2番目のメソッドがコールされる
$obj->doSomething();
$obj->doSomething("foobar");
?>

●出力結果
doSomething with param:
doSomething with param: foobar 


About This Site |  Privacy Policy |  Contact
Copyright © 1999 - 2002 by Hideyuki SHIMOOKA all rights reserved.