1 / 19

Polymorphism

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 .

gagan
Download Presentation

Polymorphism

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Polymorphism ViskaMutiawani, M.Sc

  2. KonsepPenting • Makna polymorphism • Static binding • Dynamic binding

  3. Makna Polymorphism • Polymorphism : polimorfisme • Polymorphism = poly (banyak) + morphos (bentuk) : banyakbentuk • Polymorphism : kemampuanuntukmenghandlebanyakbentuk. • Polymorphism : kemampuanuntukmemprosesobjek-objek yang berbedajenisdan class melaluisatuantarmuka yang seragam.

  4. TipePolimorfisme • Java memiliki 2 tipepolimorfisme: • Polimorfismekompilasi (static binding) • Polimorfisme runtime (dynamic binding) • Polimorfismestatis, contohpada method overloading. • Polimorfismedinamis, contohpada method overriding.

  5. Contohsederhanapolimorfisme • Semuaobjek yang memenuhilebihdarisaturelasiis-amakaobjektersebut polymorphic. • Semuaobjekdi Java: polymorphic

  6. Substitusi • Subkelasmewarisisemuaatributdanperilakusuperkelas. • Maknanyasubkelasdapatmelakukansemuahal yang dilakukanolehsuperkelas. • Akibatnya, kitadapatmensubstitusiobjeksuperkelasdenganobjeksubkelasnya. • Inilah yang disebutsubstitusi. • Dengansubstitusi: Circle c1 = new Cylinder(5.0);

  7. PolimorfismeStatis • Contohpada method overloading. • Sewaktukompilasi, Java tahu method mana yang akandipanggil

  8. ContohPolimorfismeStatis

  9. PolimorfismeDinamis • Anggaplah subclass meng-override method tertentupadasuperclass. Andaikitaciptaobjekdari subclass danmemasukkannya (via =) dalamsuperclass. Walauobjek subclass telahdimasukkanpadasuperclass, sewaktuobjektersebutmemanggil method yang dioverride, iatetapmemanggil method yang versisubclassnya, bukanversisuperclass.

  10. ContohPolimorfismeDinamis • Class Vehicle memiliki method move(). • Class MotorBikemeng-override method move(). • Java akanmenunggusaat runtime untukmenentukan method move() yang manaakandipanggil.

  11. Upcasting • Upcasting : substitusiobjek subclass padasuperclassnya. • Upcastingselaluaman, karena compiler Java pastiakanmengecekupcasting yang sahdanakanmengeluarkan error “incompatible types” jikatidaksah.

  12. Downcasting • Downcasting : substitusiobjek subclass yang direferencekesuperclass, dikembalikankeobjeksubclassnya. • Memerlukan casting operator.

  13. Downcasting • Downcastingtidakselaluaman. • DowncastingdapatmelemparClassCastExceptionjikaobjek yang didowncastbukanbagiandari subclass yang benar. • A subclass object can be substituted for its superclass, but the reverse is not true.

  14. Operator instanceof • Java menyediakan operator binary instanceof yang akanmengembalikannilaibenarjikaobjekmemang instance/anggotadari class tertentu. • anObjectinstanceofaClass • Objekdari subclass jugamerupakanobjekdarisuperclass.

  15. KegunaanPolimorfisme • Polimorfismesangatpentingpada PBO, yang bergunauntukmemisahkanantaraantarmukadanimplementasi. • Sehingga programmer dapatlebihfokussewaktumendesainsistem yang kompleks.

  16. 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.

  17. Access levels

  18. ContohPolimorfisme • Lihatcontoh program yang disediakan.

  19. Method getArea() pada Shape • Apa yang terjadijika: 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()); } }

More Related