-
Notifications
You must be signed in to change notification settings - Fork 127
/
inheritance.php
80 lines (68 loc) · 1.56 KB
/
inheritance.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/*
| ------------------------------------------------------
| Contoh Inheritance
| ------------------------------------------------------
*/
class Produk
{
public $judul,
$penulis,
$penerbit,
$harga,
$jmlHalaman,
$waktuMain;
public function __construct(
$judul = "judul",
$penulis = "penulis",
$penerbit = "penerbit",
$harga = 0,
$jmlHalaman = 0,
$waktuMain = 0
) {
$this->judul = $judul;
$this->penulis = $penulis;
$this->penerbit = $penerbit;
$this->harga = $harga;
$this->jmlHalaman = $jmlHalaman;
$this->waktuMain = $waktuMain;
}
public function getLabel()
{
return "$this->penulis,$this->penerbit";
}
public function getInfoProduk()
{
$str = "{$this->tipe} : {$this->judul} | {$this->getLabel()} (Rp. {$this->harga})";
return $str;
}
}
class Komik extends Produk
{
public function getInfoProduk()
{
$str = "Komik : {$this->judul} | {$this->getLabel()} (Rp. {$this->harga}) - {$this->jmlHalaman} Halaman.";
return $str;
}
}
class Game extends Produk
{
public function getInfoProduk()
{
$str = "Game : {$this->judul} | {$this->getLabel()} (Rp. {$this->harga}) - {$this->waktuMain} Jam.";
return $str;
}
}
class CetakInfoProduk
{
public function cetak(Produk $produk)
{
$str = "{$produk->judul} | {$produk->getLabel()}, (Rp. {$produk->harga},-)";
return $str;
}
}
$produk1 = new Komik("Naruto", "Masashi Kishimoto", "Shounen Jump", 30000, 100, 0);
$produk2 = new Game("Uncharted", "Neil Druckman", "Sony Computer", 250000, 0, 50);
echo $produk1->getInfoProduk();
echo "<br>";
echo $produk2->getInfoProduk();