【PHP】PHP 课题13-10 覆盖和类的继承

image.png

主程序的要求。

1. 请分别创建 Bulldog类的实例和Dog类的实例。
2. 请调用每个实例的introduce方法。

主要文件

公共/对象示例/扩展练习.php

<?php
// 各クラスの読み込み
require_once 'classes/Dog.php';
require_once 'classes/Bulldog.php';

$taro = new Dog('太郎', 20,70);

$taro->introduce();

echo '<hr>';

$bull = new Bulldog('ブル', 30,80);

$bull->introduce();

继承源的类

公共/对象示例/类/狗.php

<?php
// 猫型ロボットの製造機械、Catクラスを作る
class Dog {

    private $name;
    private $weight;
    private $height;

    public function __construct($name, $weight,$height){
        $this->name = $name;
        $this->weight = $weight;
        $this->height = $height;
    }

    public function introduce(){

          $this->introduce_name();
          $this->introduce_weight();
          $this->introduce_height();
          $this->shout();
    }

    private function introduce_name(){
        echo '名前は'. $this->name. 'です<br>';
    }

    private function introduce_weight(){
        echo '私の体重は'. $this->weight.'kgです。<br>';

        if($this->weight < 10){
            echo '小型犬です。<br>';
        }elseif($this->weight < 25){
            echo '中型犬です。<br>';
        }else{
            echo '大型犬です。<br>';
        }
    }

    private function introduce_height(){
      echo '私の体長は'. $this->height.'cmです<br>';
    }

    public function shout(){
        echo 'ワン!<br>';
    }
}

继承前辈

公共/对象样本/类/英国斗牛犬.php

<?php
require_once 'Dog.php';

class Bulldog extends Dog {

  // introduceメソッドをオーバーライド
  public function introduce(){
    // 最初に継承元(親)クラスのintroduceメソッドを呼び出しておく。
    echo  'ブルルルル...!<br>';
    parent::introduce();
    echo 'ブルルルル...!<br>';
  }   
}
广告
将在 10 秒后关闭
bannerAds