Anda di halaman 1dari 25

INHERITANCE DAN METHOD OVERRIDING

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

Anda mungkin juga menyukai