Polymorphism Viska Mutiawani, M.Sc.

Slides:



Advertisements
Presentasi serupa
Konsep OOP di Java TRASPAC, Mei 2009 Oleh : Siwi Arie Widadi.
Advertisements

Pemrograman JAVA (TIB09)
PERTEMUAN 4 PEMROGRAMAN API OOP Concept mudafiqriyan.com.
CARI ERROR !!! ADA BERAPA KESALAHAN ??? Apa beda JRE dan JDK ??? JDK JRE.
Pemrograman Berorientasi Objek
Other OOP Basic Viska Mutiawani, M.Sc. Konsep penting Method overloading Encapsulation this keyword final static.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Abstract Class & Interface
Inheritance (Pewarisan) As’ad Djamalilleil
Pemrograman JAVA (TIB09)
Pemograman beorientasi objek
Overriding, Overloading, Polymorphism
INHERITANCE.
Inheritance Ery Setiyawan Jullev A.
7 Rekayasa Sistem Konsep Utama OOP Dedy Alamsyah, S.Kom.
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
POLIMORFISME 2 Imam Fahrur Rozi 01.
Advanced Class 2 Pertemuan 11 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Polymorpism.
Encapsulation, Inheritance, polymorphism, dan interface
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
POLIMORPHISM Adharul Muttaqin Adharul M -
Pertemuan : Object Oriented Programming
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Polymorphism (bag. 2).
OOP Java 06 Polymorphism.
Public class RelasiDemo { public static void main(String[] args) { //beberapa nilai int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel...");
Pertemuan: Object Oriented Programming
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Pemrograman Berorientasi Obyek (PBO)
Kelas Lanjut 2 Oleh Tita Karlita.
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
OOP Java Minggu 2b Dasar OOP. Class (1) Deklarasi class : [ *] class { [ *] } Cat : [] = optional, * = repeat 0-N.
Algoritma &Pemrograman 1
Polymorphism Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 5 Tahun : 2008 Versi : 1/0.
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Polymorphism Pertemuan 9 Matakuliah: M0864/Programming I Tahun: 2009.
Access Modifier.
Inheritance dan Kata Kunci static
Inheritance (Pewarisan)
POLYMORPHISM (KEBANYAKRUPAAN)
Encapsulation, Inheritance, Polymorphism
POLYMORPHISM, ABSTRACT CLASS DAN INTERFACE
POLYMORPHISM (KEBANYAKRUPAAN)
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
Teori *Karakteristik PBO*
MODIFIER JAVA.
POLYMORPHISM.
Object Oriented Programming
Pendahuluan PBO.
POLYMORPHISM.
INHERITANCE SUSSI.
Polymorphism (bag. 2).
Pemrograman Berorientasi Object
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Algoritma dan Struktur Data
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding Pemrograman.
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Transcript presentasi:

Polymorphism Viska Mutiawani, M.Sc

Konsep Penting Makna polymorphism Static binding Dynamic binding

Makna Polymorphism Polymorphism : polimorfisme Polymorphism = poly (banyak) + morphos (bentuk) : banyak bentuk Polymorphism : kemampuan untuk menghandle banyak bentuk. Polymorphism : kemampuan untuk memproses objek-objek yang berbeda jenis dan class melalui satu antarmuka yang seragam.

Tipe Polimorfisme Java memiliki 2 tipe polimorfisme: Polimorfisme kompilasi (static binding) Polimorfisme runtime (dynamic binding) Polimorfisme statis, contoh pada method overloading. Polimorfisme dinamis, contoh pada method overriding.

Contoh sederhana polimorfisme Semua objek yang memenuhi lebih dari satu relasi is-a maka objek tersebut polymorphic. Semua objek di Java: polymorphic

Substitusi Subkelas mewarisi semua atribut dan perilaku superkelas. Maknanya subkelas dapat melakukan semua hal yang dilakukan oleh superkelas. Akibatnya, kita dapat mensubstitusi objek superkelas dengan objek subkelasnya. Inilah yang disebut substitusi. Dengan substitusi: Circle c1 = new Cylinder(5.0);

Polimorfisme Statis Contoh pada method overloading. Sewaktu kompilasi, Java tahu method mana yang akan dipanggil

Contoh Polimorfisme Statis

Polimorfisme Dinamis Anggaplah subclass meng-override method tertentu pada superclass. Andai kita cipta objek dari subclass dan memasukkannya (via =) dalam superclass. Walau objek subclass telah dimasukkan pada superclass, sewaktu objek tersebut memanggil method yang dioverride, ia tetap memanggil method yang versi subclassnya, bukan versi superclass.

Contoh Polimorfisme Dinamis Class Vehicle memiliki method move(). Class MotorBike meng-override method move(). Java akan menunggu saat runtime untuk menentukan method move() yang mana akan dipanggil.

Upcasting Upcasting : substitusi objek subclass pada superclassnya. Upcasting selalu aman, karena compiler Java pasti akan mengecek upcasting yang sah dan akan mengeluarkan error “incompatible types” jika tidak sah.

Downcasting Downcasting : substitusi objek subclass yang direference ke superclass, dikembalikan ke objek subclassnya. Memerlukan casting operator.

Downcasting Downcasting tidak selalu aman. Downcasting dapat melempar ClassCastException jika objek yang didowncast bukan bagian dari subclass yang benar. A subclass object can be substituted for its superclass, but the reverse is not true.

Operator instanceof Java menyediakan operator binary instanceof yang akan mengembalikan nilai benar jika objek memang instance/anggota dari class tertentu. anObject instanceof aClass Objek dari subclass juga merupakan objek dari superclass.

Kegunaan Polimorfisme Polimorfisme sangat penting pada PBO, yang berguna untuk memisahkan antara antarmuka dan implementasi. Sehingga programmer dapat lebih fokus sewaktu mendesain sistem yang kompleks.

Protected access Private access in the superclass may be too restrictive for a subclass. The closer inheritance relationship is supported by protected access. Protected access is more restricted than public access. We still recommend keeping fields private. Define protected accessors and mutators.

Access levels

Contoh Polimorfisme Lihat contoh program yang disediakan.

Method getArea() pada Shape Apa yang terjadi jika: public class TestShape { public static void main(String[] args) { // Constructing a Shape instance poses problem! Shape s3 = new Shape("green"); System.out.println(s3); System.out.println("Area is " + s3.getArea()); } }