1 / 17

Polymorphism (bag. 2)

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 .

caroun
Download Presentation

Polymorphism (bag. 2)

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 (bag. 2)

  2. Overriding Method Selaindapatmembuatkelasdarikelas yang sudahadadenganmenambahkanfiturtambahan, dapatjugadimodifikasiperilakukelasindukatausuperclass. Sebuahmethoddikatakanmeng-overridemethoddikelasinduknyajikadidalamsubclassdidefinisikanmethod yang memilikinama, tipekembalian, dandaftarargumen yang persissama. Contohberikutmenggambarkankonsepoverriding :

  3. Secaradefinitif, kelasManagermempunyamethod yang bernamagetDetails()karenakelasManagermewarisinyadarikelas Employee. Tetapi, kelasManager memodofikasi (me-override) isidarimethodtersebut.

  4. Adaaturan yang harusdiperhatikandalam me-overridemethoddarikelasindukseperti : • Daftarargumenpadamethodharussama (jumlahargumendantipenya) denganmethod yang di-override; • Tipekembalianmethodharussamadenganmethod yang di-override; • access specifier methodtidakbolehlebihketat (restrictive) daripada method yang di-override; • method yang meng-overridetidakdapatmelempar exception diluar exception yang dideklarasikanpadamethod yang di-override. Materitentang exception dibahaspadababselanjutnya.

  5. PadacontohtentangkelasManager danEmployee diatas, dapatdibuatobyekManagerdandiisikankevariabelbertipeEmployee. Hal inidapatdilakukankarenakelasManager mewarisisemuaatributdanmethod darikelasinduknyadansetiapoperasi yang dilakukanolehobyekEmployeejugadapatdilakukanolehobyekManager.

  6. Perhatikancontohberikut Employee employee = new Manager(); employee.name = “James”; employee.department = “marketing”; //illegal Melaluipenggunaanvariabelemployee ini, dapatdiaksesatributdan method yang merupakanbagiandarikelasEmployee (employee.name). Tetapiatributdanmethod yang menjadibagiandarikelasManager yaitu employee.departmenttidakdapatdiakses.

  7. Virtual Method Invocation Method Invocation (VMI) bisaterjadijikaterjadipolimorfismedan Overriding. Padasaatobyek yang sudahdibuattersebutmemanggil overridden method pada parent class, kompiler Java akanmelakukan invocation (pemanggilan) terhadap Overriding method pada subclass, dimana yang seharusnyadipanggiladalah overridden method. Berikutcontohterjadinya VMI:

  8. Hasildari running program diatasadalahsebagaiberikut: Nilai x = 5 Ini class Child Padakonsepini, method yang akandipanggilpadasaatruntimeakanditentukanberdasarkantipeaktualobyeknya.

  9. Polymorphic Arguments Polymorphic arguments adalahtipesuatu parameter yang menerimasuatunilai yang bertipe subclass-nya. Berikutcontohdaripolymorphics arguments:

  10. Pernyataaninstanceof Pernyataaninstanceofsangatbergunauntukmengetahuitipeasaldarisuatu polymorphic arguments. Untuklebihjelasnya, misalnyadaricontoh program sebelumnya, kitasedikitmembuatmodifikasipada class. Tesdanditambahsebuah class baruKurir, seperti yang tampakdibawahini:

  11. Casting Object Seringdijumpaikeadaandimanasuatumethodmenerimavariabelreferensibertipekelasindukdan program inginmengidentifikasitipeobyek yang aktualnya. Hal inidapatdilakukandenganpenggunaanoperatorinstanceof. Setelahmenggunakanoperatortersebut, selanjutnyakode program dapatmengembalikansemuafungsionalitasobyekaktualnyaatausubclassdengan me-castingvariabelnya. Contohberikutmenggambarkankonsepcastingobyek :

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

  13. 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 methode.getDepartment()akan gagal karena compiler tidak dapat menemukan method getDepartment()di dalam kelas Employee.

More Related