Skip to content

Commit 4ce5bb7

Browse files
committed
fix: Add stage08-inheritance.go
1 parent 2e917cb commit 4ce5bb7

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

go-oop/stage08-inheritance.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*package main
2+
3+
import "fmt"
4+
5+
// single type embedding
6+
// Anda dapat embedding(menyematkan) sebuah tipe ke dalam tipe lain.
7+
8+
// Kita memiliki tipe struct Manusia dengan dua field:
9+
type Manusia struct{
10+
Nama string
11+
Umur int
12+
}
13+
14+
// Method display() untuk menampilkan data
15+
func (m Manusia) display() {
16+
fmt.Println(m.Nama, m.Umur)
17+
}
18+
19+
// Seorang Mahasiswa dan Karyawan, keduanya adalah manusia;
20+
// kita bisa menyematkan tipe Manusia ke dalam kedua tipe tersebut:
21+
type Mahasiswa struct{
22+
Manusia
23+
Jurusan string
24+
}
25+
26+
27+
type Karyawan struct{
28+
Manusia
29+
Gaji float64
30+
}
31+
32+
func main() {
33+
// Membuat instance objek Mahasiswa
34+
mhs := Mahasiswa{
35+
Manusia: Manusia{Nama: "Alice", Umur: 20},
36+
Jurusan: "Teknik Komputer",
37+
}
38+
39+
// Membuat instance objek Karyawan
40+
kar := Karyawan{
41+
Manusia: Manusia{Nama: "Carl", Umur: 30},
42+
Gaji: 25.4,
43+
}
44+
45+
// Memanggil method display()
46+
mhs.display()
47+
// Output: Alice 20
48+
49+
kar.display()
50+
// Output: Carl 30
51+
52+
}*/

0 commit comments

Comments
 (0)