【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
abstract 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();
?>