今日、私はデザインパターンを読んでいて、インターフェイス、そのインターフェイスを実装する2つのクラス、およびメインインデックスクラスで構成されるサンプルプログラムを作成しようとしました。以下のコードを見てみましょう。まずインターフェースIproduct
<?php
interface Iproduct
{
//Define the abstract method
public function apple();
public function mango();
}
インターフェイスを実装する 2 つのクラス
<?php
// Including the interface
include_once 'Iproduct.php';
class Apple implements Iproduct
{
public function apple()
{
echo ("We sell apples!");
}
public function mango()
{
echo ("We do not sell Mango!");
}
}
<?php
// Include the interface Iprodduct
include_once 'Iproduct.php';
class Mango implements Iproduct
{
public function apple()
{
echo ("We do not sell Apple");
}
public function mango()
{
echo ("We sell mango!");
}
}
今メインクラス
<?php
include_once ('apple.php');
include_once ('Mango.php');
class UserProduct
{
public function __construct()
{
$apple_class_obj=new Apple();
$mango_class_obj=new Mango();
//echo("<br/> the apple class object: ".$apple_class_obj);
}
}
//creating the object of the UserProduct
echo ("creating the object!<br/>");
$userproduct_obj=new UserProduct();
?>
コードを実行したときに得られる出力は次のとおりです。
creating the object!
we sell apples!we sell mango
問題は、2 番目の出力がどのようになっているのかを取得できないことです。つまり、リンゴを販売しています。マンゴーも売ってます!が表示されています。理由を教えてください