Polymorphism (bag. 2).

Slides:



Advertisements
Presentasi serupa
Membuat class sendiri.
Advertisements

Polymorphism Suatu fungsi anggota dari suatu class dapat dijadikan sebagai fungsi virtual Jika fungsi ini dideklarasikan kembali pada class turunan dan.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Abstract Class & Interface
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Polymorphism Viska Mutiawani, M.Sc.
Inheritance ImamFahrur Rozi.
Overriding, Overloading, Polymorphism
INHERITANCE.
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
7 Rekayasa Sistem Konsep Utama OOP Dedy Alamsyah, S.Kom.
Java Review Oleh: Idris Winarno.
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
POLIMORFISME 2 Imam Fahrur Rozi 01.
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Encapsulation, Inheritance, polymorphism, dan interface
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pemrograman Berorientasi Objek
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
Pemrograman Berorientasi Objek
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
Pertemuan : Object Oriented Programming
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
07 Advanced Class Features
OOP Java 06 Polymorphism.
OOP Java - Tj Konsep Dasar OOP.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Advanced Class Features 2
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Pertemuan 12 Pemrograman Berbasis Obyek Oleh Tita Karlita
Algoritma &Pemrograman 1
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pemrograman berbasis obyek
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Perancangan dan Pemrograman Web
Access Modifier.
Inheritance dan Kata Kunci static
POLYMORPHISM (KEBANYAKRUPAAN)
Pemograman Berorientasi Objek
@kovazzevic | SMKN 24 Jakarta
POLYMORPHISM (KEBANYAKRUPAAN)
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
POLYMORPHISM.
Algoritma & Pemrograman 1
MEMBUAT CLASS SENDIRI 2.
PEWARISAN (Inheritance)
Object Oriented Programming
Pendahuluan PBO.
Inheritance.
Polymorphism (bag. 2).
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Pemrograman Berorientasi Object
Polimorphism Dosen Pengampu : Nur Iksan.
Pemrograman Berorientasi Object
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding Pemrograman.
TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT (OOP)
Pertemuan 5 Inheritance
Dasar-dasar Pemrograman Berbasis Obyek. kelas Kelas pada java didefinisikan dengan menggunakan kata kunci class.
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

Polymorphism (bag. 2)

Overriding Method Selain dapat membuat kelas dari kelas yang sudah ada dengan menambahkan fitur tambahan, dapat juga dimodifikasi perilaku kelas induk atau superclass. Sebuah method dikatakan meng-override method di kelas induknya jika di dalam subclass didefinisikan method yang memiliki nama, tipe kembalian, dan daftar argumen yang persis sama. Contoh berikut menggambarkan konsep overriding :

Secara definitif, kelas Manager mempunya method yang bernama getDetails() karena kelas Manager mewarisinya dari kelas Employee. Tetapi, kelas Manager memodofikasi (me-override) isi dari method tersebut.

Ada aturan yang harus diperhatikan dalam me-override method dari kelas induk seperti : Daftar argumen pada method harus sama (jumlah argumen dan tipenya) dengan method yang di-override; Tipe kembalian method harus sama dengan method yang di-override; access modifier method tidak boleh lebih ketat (restrictive) daripada method yang di-override; method yang meng-override tidak dapat melempar exception di luar exception yang dideklarasikan pada method yang di-override. Materi tentang exception dibahas pada bab selanjutnya.

Pada contoh tentang kelas Manager dan Employee di atas, dapat dibuat obyek Manager dan diisikan ke variabel bertipe Employee. Hal ini dapat dilakukan karena kelas Manager mewarisi semua atribut dan method dari kelas induknya dan setiap operasi yang dilakukan oleh obyek Employee juga dapat dilakukan oleh obyek Manager.

Employee employee = new Manager(); employee.name = “James”; Perhatikan contoh berikut Employee employee = new Manager(); employee.name = “James”; employee.department = “marketing”; //illegal Melalui penggunaan variabel employee ini, dapat diakses atribut dan method yang merupakan bagian dari kelas Employee (employee.name). Tetapi atribut dan method yang menjadi bagian dari kelas Manager yaitu employee.department tidak dapat diakses.

Virtual Method Invocation Method Invocation (VMI) bisa terjadi jika terjadi polimorfisme dan Overriding. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java akan melakukan invocation (pemanggilan) terhadap Overriding method pada subclass, dimana yang seharusnya dipanggil adalah overridden method. Berikut contoh terjadinya VMI:

Hasil dari running program diatas adalah sebagai berikut: Nilai x = 5 Ini class Child Pada konsep ini, method yang akan dipanggil pada saat runtime akan ditentukan berdasarkan tipe aktual obyeknya.

Polymorphic Arguments Polymorphic arguments adalah tipe suatu parameter yang menerima suatu nilai yang bertipe subclass-nya. Berikut contoh dari polymorphics arguments:

Pernyataan instanceof Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic arguments. Untuk lebih jelasnya, misalnya dari contoh program sebelumnya, kita sedikit membuat modifikasi pada class. Tes dan ditambah sebuah class baru Kurir, seperti yang tampak dibawah ini:

Casting Object Sering dijumpai keadaan di mana suatu method menerima variabel referensi bertipe kelas induk dan program ingin mengidentifikasi tipe obyek yang aktualnya. Hal ini dapat dilakukan dengan penggunaan operator instanceof. Setelah menggunakan operator tersebut, selanjutnya kode program dapat mengembalikan semua fungsionalitas obyek aktualnya atau subclass dengan me-casting variabelnya. Contoh berikut menggambarkan konsep casting obyek :

public void doSomething(Employee e) { if(e instanceof Manager) { Manager m = (Manager)e; System.out.println(“this is the manager of ” +m.getDepartment()); } //rest of operation

Dalam contoh di atas, method menerima variabel referensi (e) bertipe Employee. Selanjutnya digunakan kata kunci instanceof untuk memastikan bahwa obyek yang dimiliki tersebut merupakan instance dari kelas Manager. Jika hal itu benar, variabel tersebut di-casting ke variabel bertipe Manager (m). Melalui penggunaan variabel bertipe Manager ini, dapat dipanggil method yang terdapat di kelas Manager, yaitu method getDepartment(). Jika tidak menggunakan casting, maka usaha untuk memanggil method e.getDepartment()akan gagal karena compiler tidak dapat menemukan method getDepartment()di dalam kelas Employee.