Pemrograman
VI (OO II)
Object Oriented II
02
Abstract Kompetensi
Resume ringkas/singkat, akurat, dan Mahasiswa mampu memahami Konsep
jelas terhadap isi materi pertemuan Object Oriented
mata kuliah mengacu pada
Rancangan Pembelajaran Semester
(RPS)
A. Java Inheritance
Di Java, dimungkinkan untuk mewarisi atribut dan metode dari satu kelas ke kelas lainnya.
konsep warisan ini dikelompokan menjadi dua kategori:
Pada contoh di bawah ini, class Car (subclass) diwarisi atribut dan metode dari class Vehicle
(superclass):
Catatan:
Coba perhatikan protected modifier di kelas Vehicle. Jika disetel ke private, maka kelas
Car tidak akan dapat mengaksesnya.
Example
class Calculation {
int z;
Penjelasan : Dalam program yang diberikan, ketika sebuah objek ke kelas My_Calculation
dibuat, salinan konten superkelas dibuat di dalamnya. Itulah sebabnya, dengan menggunakan
objek subclass Anda bisa mengakses anggota superclass.
Kode sampel
Berikut ini contoh penggunaan kata kunci super
Dalam program yang diberikan, terdapat dua kelas yaitu Sub_class dan
Super_class, keduanya memiliki metode bernama display () dengan implementasi
berbeda, dan variabel bernama num dengan nilai berbeda. Disini akan dipanggil
metode display () dari kedua kelas dan mencetak nilai dari variabel num dari kedua
kelas tersebut. Disini dapat diamati bahwa kita telah menggunakan kata kunci super
untuk membedakan anggota superclass dari subclass.
Example
class Super_class {
int num = 20;
Kode sampel
Program yang diberikan dibagian ini mendemonstrasikan bagaimana menggunakan
kata kunci super untuk memanggil konstruktor parametrized dari superclass.
Program ini berisi superclass dan subclass, di mana superclass tersebut berisi
konstruktor berparameter yang menerima nilai integer, dan kita menggunakan kata
kunci super untuk memanggil konstruktor berparameter dari superclass tersebut.
Example
class Superclass {
int age;
Superclass(int age) {
this.age = age;
}
Dengan menggunakan kata kunci extends, subclass akan dapat mewarisi semua
properti superclass kecuali properti privat dari superclass tersebut.
Output
true
true
true
Tetapi khusus untuk interface, Java dapat mewarisi lebih dari 1 interface
B. Java Overriding
Pada bab sebelumnya, kita berbicara tentang superclass dan subclass. Jika kelas mewarisi
method dari superclassnya, maka ada peluang untuk mengganti method tersebut asalkan pada
superclass tersebut tidak ditandai dengan tanda final.
Manfaat dari overriding (mengganti) adalah untuk memberikan perilaku yang spesifik pada
subkelas. Dalam istilah berorientasi objek, overriding berarti menimpa fungsionalitas method
yang ada.
Dalam contoh di atas, dapat dilihat bahwa meskipun b adalah tipe Animal, method move
yang dipanggil adalah di kelas Dog. Alasannya adalah: Pada waktu kompilasi, pengecekan
akan dilakukan pada tipe referensi. Namun, pada saat runtime, JVM lalu mengetahui jenis
objek asli dan akan menjalankan metode yang dimiliki oleh objek tersebut.
C. Java Polymorphism
Polimorfisme adalah kemampuan suatu objek untuk mengambil berbagai bentuk. Penggunaan
polimorfisme yang paling umum di OOP terjadi ketika referensi kelas parent digunakan
untuk merujuk ke objek kelas child.
Example
Perhatikan contoh berikut
public interface Vegetarian{}
public class Animal{}
public class Deer extends Animal implements Vegetarian{}
Sekarang kelas Deer akan dianggap sebagai polimorfik karena memiliki banyak
pewarisan. Dengan ini dapat dikatakan :
Ketika kita mengaplikasikan variable referensi ke objek Deer maka deklarasi berikut
dianggap valid -
Example
Deer d = new Deer();
Animal a = d;
Vegetarian v = d;
Object o = d;
Example
/* File name : Employee.java */
public class Employee {
private String name;
private String address;
private int number;