Konsep inheritance atau pewarisan ini mengadopsi dunia nyata dimana sebuah objek dapat mewariskan
sifat pada turunannya. Dalam kehidupan manusia pasti memiliki karakter yang hampir sama dengan
orang tua. Selain bentuk fisik yang memiliki keseragaman yang hampir sama, tentunya juga memiliki
beberapa karakter/sifat yang hampir sama dengan kedua orang tua.
Misalnya ayah nobita adalah orang penyabar, sedangkan nobita juga penyabar, tapi dibalik
semua itu, nobita juga mempunyai sifat lain yang tidak dimiliki oleh ayahnya, yaitu pemalas.
Itulah kenapa setiap turunan dikatakan ‘hampir‘ sama dengan induknya.
Pengertian Inheritance
Inheritance (pewarisan) adalah proses pewarisan data dan method satu kelas induk kepada kelas turnannya.
Komponen class pada pewarisan yaitu:
Di dalam bahasa pemrograman java, untuk mendeklarasikan suatu class sebagai subclass
dilakukan dengan cara menambahkankata kunci extends setelah deklarasi nama classnya, kemudian
diikuti dengan nama parent class-nya atau super classnya. Kata kunci extends tersebut memberitahu
kompiler java bahwa kita ingin melakukan perluasan class.
Contoh kasus:
Terdapat beberapa software di komputer. Software tersebut beraneka ragam: software game, software
edukasi, dan lain-lain. Biarpun berbeda jenisnya, software
tersebut pasti memiliki kesamaan dengan software sejenisnya. Dengan kata lain, apabila dilihat dari
segi pemrograman, maka class Software adalah superclass, sedangkan class Game adalah
subclassnya. Jadi penulisan code java-nya adalah sebagai berikut:
Manfaat Inheritance
1. Bersifat reusable
Pada class yang memiliki sifat mirip denga class lain, tidak perlu membuat variabel dan method yang
sama dalam penerapannya. Sehingga hanya perlu membuat satu class sebagai induk, dan beberapa
class sebagai anak yang mewarisi method dan data dari class induk. Ketika membutuhkan data dan
method tambahan pada class anak, hanya perlu menambahkan data tambahan tersebut, tanpa perlu
mendeklarasikan data dan method yang sudah dimiliki oleh induk class.
2. Efisiensi dalam manajemen data dan method
Ketika membutuhkan perubahan pada data dan method pada induk class, tidak perlu mengubah semua
class anak, sehingga hanya perlu melakukan perubahan pada class induknya saja.
Keyword “super“
Keyword super digunakan oleh subclass untuk memanggil constructor atau method yang ada pada
superclassnya. Berikut cara penulisan keyword super pada subclass untuk memanggil constructor pada
superclass.
Sedangkan cara penulisan “super“ pada subclass untuk memanggil method pada superclass adalah
sebagai berikut:
Kontrol akses
Suatu parent class dapat tidak mewariskan sebagian data dan methodnya kepada subclassnya.
Sejauh mana suatu data dan method tersebut dapat diwariskan ke kelas lain sangat berhubungan
dengan access control. Gambaran akses kontrol digambarkan pada tabel berikut:
?
1 public class Parent {
2 public int x =5;
3 }
Class Child.java
?
1
public class Child extends Parent {
2 public int x = 10;
3 public void info(int x){
4 System.out.println("Nilai x Sebagai Parameter = "+x);
5 System.out.println("Data member x di class Child = "+ this.x);
6 System.out.println("Data member x di class Parent = "+ super.x);
}
7 }
8
Class Main.java
?
1 public class Main {
2 public static void main(String[] args) {
3 Child anak = new Child();
4 anak.info(20);
5 }
}
6
Hasil ketika di Run :
Soal Java :
Buatlah 3 buah class yang terdiri dari class Software, class Game, class Main yang berada pada package
Software.
Aturan class Software:
o Constructor kedua memiliki parameter untuk mengeset nilai kode, nama, dan lisensi (freeware/
shareware/ komersil)
• Terdapat method setter dan getter untuk mengeset dan mengambil nilai dari
o Constructor pertama memiliki parameter untuk mengeset nilai kode, nama, dan lisensi diambil dari
constructor kedua pada class Software (gunakan keyword super)
o Constructor kedua memiliki parameter untuk mengeset nilai kode, nama, lisensi (freeware/ shareware/
komersil), jenis (offline/online), dan tipe (action/ adventure/ sport/ puzzle). Data kode, nama, dan lisensi
diambil dari setter pada class Software (gunakan keyword super)
• Terdapat method getter untuk mengambil nilai dari variabel kode, nama, dan
lisensi pada class Software serta mengambil nilai dari variabel jenis dan tipe.
Setelah class-class tersebut dibuat, buatlah class Main yang berisi method main. Kemudian
implementasikan pada main method tersebut berdasarkan inputan user (menggunakan Scanner atau
BufferedReader).
?
1 public class software {
2 // coding by denny-id.blogspot.co.id
3
4 protected String code, namagame, lisensi;
////// default
5
6
7 ///////////////////////////Constructor Pertama
8 public software (){
9
10 }
11 /////////////////////////////////////////////
12
13
14 ///////////////////////////Constructor Kedua
15 public software (String kode, String game, String lisen){
16
this.code = kode;
17 this.namagame = game;
18 this.lisensi = lisen;
19 }
20 /////////////////////////////////////////////////////////
21
22
23 ///////////////////////////////////Method setter & getter
public void setCode(String kode){
24 this.code = kode;
25 }
26
27 public String getCode(){
28 return code;
29 }
//////////////////////////////////////////////////////////
30
31
32 ////////////////////////////////////Method setter & getter
33 public void setNamagame(String game){
34 this.namagame = game;
35 }
36
37 public String getNamagame(){
return namagame;
38 }
39 //////////////////////////////////////////////////////////
40
41
42 ////////////////////////////////////Method setter & getter
43 public void setlisensi (String lisen){
44 this.lisensi = lisen;
}
45
46 public String getlisensi(){
47 return lisensi;
48 }
49 /////////////////////////////////////////////////////////
}
50
51
52
53
54
55
56
Buat Class game.java
?
public class game extends software{
1
2
////Atribut
3 protected String jenis;
4 protected String type;
5 //////////////////////////////////////////////
6
7
8 ////////////////////////////Constructor pertama
public game (String kode, String name, String lisen){
9
super(kode, name, lisen);
10 }
11 //////////////////////////////////////////////
12
13
14 /////////////////////////////Constructor kedua
15 public game(String jns, String tipe){
this.jenis = jns;
16 this.type = tipe;
17 super.setCode(code);
18 super.setNamagame(namagame);
19 super.setlisensi(lisensi);
20 }
//////////////////////////////////////////////
21
22
23 //////////////////////////////////Method getter
24 public String getCod(){
25 return super.getCode();
26 }
27 ///////////////////////////////////////////////
28
29
//////////////////////////////////Method getter
30 public String getNama(){
31 return super.getNamagame();
32 }
33 ///////////////////////////////////////////////
34
35
36 //////////////////////////////////Method getter
public String getlis (){
37 return super.getlisensi();
38 }
39 ///////////////////////////////////////////////
40
41
42 //////////////////////////////////Method getter
43 public String getJenis(){
return jenis;
44 }
45 ///////////////////////////////////////////////
46
47
48 //////////////////////////////////Method getter
49 public String getType(){
return type;
50 }
51 ///////////////////////////////////////////////
52 // coding by denny-id.blogspot.co.id //
53 }
54
55
56
57
58
59
60
61
Buat Class main_2.java
?
1 ///////////////////////////////////////
import java.io.BufferedReader;
2 import java.io.IOException;
3 import java.io.InputStreamReader;
4 ///////////////////////////////////////
5
6 public class main_2 {
7 public static void main(String[] args) throws IOException{
8
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
9 String code;
10 String nama;
11 String jenis;
12 String tipe;
13 String lisen;
int pilihan;
14
15 /////////////////////////////////////////
16
17 game print = new game ("","");
18 game $print = new game ("", "", "");
19
20 System.out.println("+++++Game Pertama+++++");
21 System.out.println("----------------------");
22
System.out.println("Kode Game:");
23 print.code = code = input.readLine();
24 System.out.println("Nama :");
25 print.namagame = nama = input.readLine();
26 System.out.println("Jenis :");
print.jenis = jenis = input.readLine();
27 System.out.println("Type :");
28 print.type = tipe = input.readLine();
29 System.out.println("Lisensi :");
30 print.lisensi = lisen = input.readLine();
31 System.out.println("");
32
33
System.out.println("*****Game Kedua*****");
34 System.out.println("--------------------");
35 System.out.println("Kode Game:");
36 $print.code = code = input.readLine();
37 System.out.println("Nama :");
38 $print.namagame = nama = input.readLine();
System.out.println("Jenis :");
39 $print.jenis = jenis = input.readLine();
40 System.out.println("Type :");
41 $print.type = tipe = input.readLine();
42 System.out.println("Lisensi :");
$print.lisensi = lisen = input.readLine();
43 System.out.println("");
44
45 ////////////////////////////////////////////
46
47 System.out.println("Lihat Data");
48 System.out.println("1. Data Pertama\n"
49 + "2. Data Kedua\n"
+ "0.Exit");
50 System.out.println("Masukan Pilihan : ");
51
52 pilihan = Integer.parseInt(input.readLine());
53
54 /////////////////////////////////////////////
55 // coding by denny-id.blogspot.co.id //
56 while (pilihan != 0) {
switch (pilihan) {
57 case 1:
58 System.out.println("Rincian Game" + print.getNama());
59 System.out.println("==============================");
60 System.out.println("Kode Game :" + print.getCod());
System.out.println("-------------------------------");
61
System.out.println("Nama Game :" + print.getNama());
62 System.out.println("-------------------------------");
63 System.out.println("Jenis Game :" + print.getJenis());
64 System.out.println("-------------------------------");
65 System.out.println("Type Game :" + print.getType());
System.out.println("-------------------------------");
66 System.out.println("Lisensi Game :" + print.getlis());
67 System.out.println("-------------------------------");
68 break;
69
70 case 2:
71 System.out.println("Rincian Game" + $print.getNama());
72 System.out.println("==============================");
System.out.println("Kode Game : " + $print.getCod());
73 System.out.println("-------------------------------");
74 System.out.println("Nama Game : " + $print.getNama());
75 System.out.println("-------------------------------");
System.out.println("Jenis Game : " + $print.getJenis());
76 System.out.println("-------------------------------");
77 System.out.println("Type Game : " + $print.getType());
System.out.println("-------------------------------");
78 System.out.println("Lisensi Game : " + $print.getlis());
79 System.out.println("-------------------------------");
80 break;
81 default:
}
82 ////////////////////////////////////////////////////////////////////
83 System.out.println("Lihat Data");
84 System.out.println("1. Data Pertama\n"
85 + "2. Data Kedua\n"
86 + "0.Exit");
System.out.println("Masukan Pilihan : ");
87 pilihan = Integer.parseInt(input.readLine());
88 }
89 }
90 }
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Lalu Run main_2.java dan berikut hasilnya :
Keyword :
contoh program penggunaan inheritance pada java
contoh program mencetak game dan software pada inheritance java
program java inheritance java
cara membuat program menggunakan inheritance pada java