Konsep Penting Composition Inheritance (pewarisan) Superclass (super kelas) Subclass (sub kelas) Method overriding
2
Viska Mutiawani - Informatika FMIPA Unsyiah
Reuse Class Ada 2 cara untuk reuse (menggunakan kembali) class yang telah dibuat:
3
Composition (has-a) Inheritance (is-a)
Viska Mutiawani - Informatika FMIPA Unsyiah
Composition vs Inheritance Composition : aggregation Composition : class baru disusun dari class yang telah ada. Inheritance : pewarisan Inheritance : class baru dibuat berdasarkan modifikasi dari class yang telah ada.
4
Viska Mutiawani - Informatika FMIPA Unsyiah
Composition Contoh ada class Point.
5
Anggap kita akan buat class Line. Kita dapat re-use class Point dengan composition. Kita sebut: "A line is composed of two points", or "A line has two points". Composition juga disebut relasi "has-a”
Viska Mutiawani - Informatika FMIPA Unsyiah
Contoh Composition
6
Viska Mutiawani - Informatika FMIPA Unsyiah
Inheritance Atau pewarisan Anggap seperti hirarki binatang dalam Biologi.
7
Viska Mutiawani - Informatika FMIPA Unsyiah
Inheritance Superclass: Class yang berada pada hirarki lebih atas. (Parent)
Memiliki variabel dan method yang umum
Subclass: Class yang berada pada hirarki lebih bawah. (Child)
8
Memiliki variabel dan method yang lebih khusus. Subclass mewarisi semua variabel dan method dari superclasssuperclassnya.
Contoh: Poodle is a dog Owl is a bird Bird is a animal
Viska Mutiawani - Informatika FMIPA Unsyiah
Contoh Inheritance
Cara subclass mewarisi superclass: dengan keyword “extends”
10
Viska Mutiawani - Informatika FMIPA Unsyiah
Keyword “super”
Keyword super digunakan untuk merujuk pada variabel dan method pada superclass. Pada constructor, super digunakan untuk memanggil constructor dari superclass.
11
Viska Mutiawani - Informatika FMIPA Unsyiah
Constructor pada Inheritance
Constructor subclass di Java tidak diwarisi dari superclassnya. Namun constructor superclass dapat digunakan di dalam subclass dengan menggunakan keyword super(). Setiap class di Java memiliki constructornya sendiri.
12
Viska Mutiawani - Informatika FMIPA Unsyiah
Method overriding
Selain dari mewarisi semua variabel dan method dari superclass-superclassnya, subclass dapat mengoverride variabel dan method. Andaikan kita ingin menghitung luas permukaan Cylinder. Kita gunakan method getArea() pada Circle dengan cara meng-overridenya. Dan selanjutnya kita ubah getVolume() untuk menghitung volume Cylinder.
13
Viska Mutiawani - Informatika FMIPA Unsyiah
@Override
@Override disebut sebagai annotation, yang menyuruh compiler untuk mengecek apakah ada nama method pada superclass. Jika tanpa @Override, method ToString() akan dianggap sebagai method baru. Jika dengan @Override, akan muncul error kompilasi jika kita tulis ToString() Optional but nice to have.
14
Viska Mutiawani - Informatika FMIPA Unsyiah
Single Inheritance
Java tidak mensupport multiple inheritance (subclass punya lebih dari satu superclass) Pada Java, subclass hanya boleh punya satu superclass langsung di atasnya. Namun superclass boleh punya banyak subclass.
15
Viska Mutiawani - Informatika FMIPA Unsyiah
java.lang.Object
Setiap class pada Java merupakan subclass dari Object (java.lang.Object). Java.lang.Object disebut common root. Hal ini diperlukan untuk running program dengan JRE, contohnya pada kasus multithreading, garbage collector.
16
Viska Mutiawani - Informatika FMIPA Unsyiah
Composition vs Inheritance
“A line is composed of 2 points” vs “A line is a point extended by another point”? Which one? Pendapat ahli: Use composition if possible, before considering inheritance.