HETTY MEILENI 1.Kenapa kita harus menggunakan inheritance? 2.Contoh Program inheritance 3.Method Overriding PENJELASAN INHERITANCE
Misalkan dalam Game, kita akan membuat
class-class musuh dengan perilaku yang berbeda. KODE PROGRAM File: Zombie.java Boleh saja digunakan penulisan kode seperti diatas namun tidak efektif, karena kita menulis berulang-ulang properti dan method yang sama.
Bagaimana solusinya?
Kita harus menggunakan inheritance.
Setelah menggunakan inheritance, maka akan menjadi seperti ini:
inheritance di StarUML digambarkan dengan garis
hubung Generalization Pada class anak, kita menggunakan kata kunci extends untuk menyatakan kalau dia adalah class turunan dari Enemy. buat objek dari class-class tersebut, Kita bisa membuatnya seperti ini: CONTOH PROGRAM INHERITANCE
Menghitung luas dan keliling bangun datar.
Bentuk class diagramnya seperti ini: Buka Netbeans, buatlah package baru bernama inheritance di dalam Source Packages. Isi nama package dengan inheritance. Berikutnya buatlah class-class baru berdasarkan diagram di atas. APA HASILNYA KETIKA PROGRAM MAIN DI EKSEKUSI??? MENGAPA HASILNYA HANYA MENAMPILKAN KALIMAT ????????
Karena yang kita panggil sebenarnya adalah
method luas() dan keliling() milik si induk (BangunDatar). Objek anak dari BangunDatar belum memiliki method luas() dan keliling(), akhirnya mengambil milik induknya. Lalu bagaimana kalau kita ingin membuat agar semua class anak memiliki method luas() dan keliling() yang berbeda dari induk? Jawabanya: menggunakan method overriding. METHOD OVERRIDING Method Overriding dilakukan saat kita ingin membuat ulang sebuah method pada sub-class atau class anak. Method Overriding dapat dibuat dengan menambahkan anotasi @Override di atas nama method atau sebelum pembuatan method.
Artinya kita menulis ulang
method luas() dan keliling() di class anak. Sekarang mari kita buat method overriding untuk semua class anak. Dalam rumus luas dan keliling lingkaran, kita bisa memanfaatkan konstanta Math.PI sebagai nilai PI. Konstanta ini sudah ada di Java. Untuk class Segitiga, kita hanya melakukan override terhadap method luas() saja. Karena untuk method keliling(), segitiga memiliki rumus yang berbeda-beda atau mungkin bisa diturunkan lagi class segitiga ini menjadi: SegitigaSiku, Segitig aSamaKaki, SegitigaSamaSisi dsb. THANK YOU