【PHP/演習問題】抽象メソッド[1]

【PHP/演習問題】抽象メソッド[1]

問題

次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。

  • 下記表の3つのクラスを作成する
  • 実行結果になるように各クラスのインスタンスを使う
クラス 英記 継承元 フィールド メソッド
チケットクラス
(抽象クラス)
Ticket なし $price(料金) info()
→ 抽象メソッド
ライブチケット LiveTicket Ticket $place(場所) info()
→ 場所と料金を出力
ライブ配信チケット LiveStreamingTicket Ticket $url(URL) info()
→ URLと料金を出力
===== ライブチケット =====
料金 : 8000円
場所 : ライブハウス
===== ライブ配信   =====
料金 : 3000円
URL : https://it-hack.net/live-streaming

解答例

<?php

abstract class Ticket {
    
    public $price;
    
    abstract public function info();
    
}

class LiveTicket extends Ticket {
    
    public $place;
    
    public function info() {
        echo '料金 : '.$this->price."円\n";
        echo '場所 : '.$this->place."\n";
    }
    
}

class LiveStreamingTicket extends Ticket {
    
    public $url;
    
    public function info() {
        echo '料金 : '.$this->price."円\n";
        echo 'URL : '.$this->url."\n";
    }
    
}

echo "===== ライブチケット =====\n";
$live_ticket = new LiveTicket();
$live_ticket->price = 8000;
$live_ticket->place = 'ライブハウス';
$live_ticket->info();

echo "===== ライブ配信   =====\n";
$live_streaming_ticket = new LiveStreamingTicket();
$live_streaming_ticket->price = 3000;
$live_streaming_ticket->url = 'https://it-hack.net/live-streaming';
$live_streaming_ticket->info();

?>