Anda di halaman 1dari 7

PEMROGRAMAN BERORIENTASI OBJEK

“POLYMORFISME”

 
 

Disusun Oleh :

Nama                    : Afifah Putri Mevtilina


NIM                      : 09021282025052
Kelas                    : 4 Reguler C
Dosen                   : M. Qurhanul Rizqie, S.Kom., M.T., PH.D.
 

FAKULTAS ILMU KOMPUTER


PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS SRIWIJAYA
2022
POLYMORFISME

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.

Polimorfisme pada Java memiliki 2 macam yaitu diantaranya:

1. Static Polymorphism (Polimorfisme statis).

2. Dynamic Polymorphism (Polimorfisme dinamis).

Perbedaan keduanya terletak pada cara membuat polimorfisme. Polimorfisme statis


menggunakan method overloading, sedangkan polimorfisme dinamis menggunakan method
overriding. 

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;

public class Hero {

String nama;

Hero(String nama){

this.nama = nama;

void display(){

System.out.println("\nName \t: " +


this.nama);
}

void attack(Hero enemy){

System.out.println("Menyerang");

 File HeroAgility.java

package com.tutorial;

public class HeroAgility extends Hero{


String type = "Agility";

HeroAgility(String nama){

super(nama);

@Override

void display(){

super.display();

System.out.println("Type \t: " +


this.type);
}

void showoff(){

System.out.println("Saya hero Agility!!");

 File HeroIntel.java

package com.tutorial;

public class HeroIntel extends Hero{

String type = "intel";

HeroIntel(String nama){

super(nama);

}
@Override

void display(){

super.display();

System.out.println("Type \t: " +


this.type);
}

 File HeroStrength.java
package com.tutorial;

public class HeroStrength extends Hero{

String type = "Strength";

HeroStrength(String nama){

super(nama);

@Override

void display(){

super.display();

System.out.println("Type \t: " + this.type);

 File Main.java

package com.tutorial;

public class Main {


public static void main(String[] args) {

Hero hero1 = new Hero("Ucup");

HeroStrength hero2 = new HeroStrength("Otong");

hero1.display();

hero2.display();

// Polymorphic

Hero hero3 = new HeroAgility("Maria");

hero3.display();

HeroAgility hero4 = new HeroAgility("Mahmud");

hero4.display();

hero4.showoff();

// tidak bisa

// HeroIntel hero4 = new Hero("Mahmud");

// hero4.display();

// Array list

Hero[] kumpulanHero = new Hero[4];

kumpulanHero[0] = hero1;

kumpulanHero[1] = hero2;

kumpulanHero[2] = hero3;

kumpulanHero[3] = hero4; // casting

kumpulanHero[0].display();

kumpulanHero[1].display();

kumpulanHero[2].display();
// method calls

// kumpulanHero[3].showoff(); // ini tidak bisa

hero4.showoff();

// aplikasi

hero1.attack(hero2);

hero1.attack(hero3);

hero1.attack(hero4);

Anda mungkin juga menyukai