【PHP/演習問題】クラスの継承[2]
問題
次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。
- 下記表の3つのクラスを作成する
- 実行結果になるように各クラスのインスタンスを使う
クラス | 英記 | 継承元 | フィールド | メソッド |
---|---|---|---|---|
チケットクラス | Ticket |
なし | ・$price (料金) |
・display_price()
→ $ の値を出力 |
ライブチケット | LiveTicket |
Ticket |
・$place (場所) |
・info()
→ 場所と料金を出力 ※ 料金の出力は display_price() を使う |
ライブ配信チケット | LiveStreamingTicket |
Ticket |
・$url (URL) |
・info()
→ URLと料金を出力 ※ 料金の出力は display_price() を使う |
===== ライブチケットクラスのインスタンス =====
場所 : ライブハウス
料金 : 8000円
===== ライブ配信クラスのインスタンス =====
URL : https://it-hack.net/live-streaming
料金 : 3000円
解答例
<?php
class Ticket {
public $price;
public function display_price() {
echo '料金 : '.$this->price."円\n";
}
}
class LiveTicket extends Ticket {
public $place;
public function info() {
echo '場所 : '.$this->place."\n";
$this->display_price();
}
}
class LiveStreamingTicket extends Ticket {
public $url;
public function info() {
echo 'URL : '.$this->url."\n";
$this->display_price();
}
}
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();
?>