Afifah Putri M - 09021282025052 - Rangkuman Polymorfisme
Afifah Putri M - 09021282025052 - Rangkuman Polymorfisme
“POLYMORFISME”
Disusun Oleh :
Polymorfisme terbagi menjadi dua suku kata yaitu, Poly yang berarti banyak
dan Morfisme yang berarti bentuk. Polymorfisme dalam OOP merupakan sebuah konsep
OOP di mana class memiliki banyak “bentuk” method yang berbeda, meskipun namanya
sama. Maksud dari “bentuk” adalah isinya yang berbeda, namun tipe data dan parameternya
berbeda.
Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama
sama. Penggunaan metoda dengan nama sama dapat melalui method overloading dan method
overriding. Peran polymorphism tidak terbatas hanya pada hal-hal tersebut. Ada kaitan erat
antara polymorphism dan inheritance (turunan).
Dalam konsep turunan Java, saat obyek dari subclass dikonstruksi, obyek dari superclass juga
ikut dikonstruksi. Jadi setiap obyek (instance) dari subclass adalah juga instance dari
superclass. Bila kita mendeklarasikan metoda dengan parameter dari tipe superclass, kita
dibolehkan memberi argumen berupa obyek dari subclass yang merupakan turunan dari
superclass tersebut.
CONTOH PROGRAM POLYMORFISME PADA JAVA
File Hero.java
package com.tutorial;
String nama;
Hero(String nama){
this.nama = nama;
void display(){
System.out.println("Menyerang");
File HeroAgility.java
package com.tutorial;
HeroAgility(String nama){
super(nama);
@Override
void display(){
super.display();
void showoff(){
File HeroIntel.java
package com.tutorial;
HeroIntel(String nama){
super(nama);
}
@Override
void display(){
super.display();
File HeroStrength.java
package com.tutorial;
HeroStrength(String nama){
super(nama);
@Override
void display(){
super.display();
File Main.java
package com.tutorial;
hero1.display();
hero2.display();
// Polymorphic
hero3.display();
hero4.display();
hero4.showoff();
// tidak bisa
// hero4.display();
// Array list
kumpulanHero[0] = hero1;
kumpulanHero[1] = hero2;
kumpulanHero[2] = hero3;
kumpulanHero[0].display();
kumpulanHero[1].display();
kumpulanHero[2].display();
// method calls
hero4.showoff();
// aplikasi
hero1.attack(hero2);
hero1.attack(hero3);
hero1.attack(hero4);