Ringkasan tentang Polymorphism Pada Konsep PBO (Java Programming)
- Polymorphism merupakan sesuatu yang mempunyai banyak bentuk.
- Polymorphism sifat class yang memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda.
- Dalam pemrograman polymorphism merupakan dapat diartikan suatu modul yang mempunyai nama sama, tapi memiliki behavior yang berbeda sehingga listing code implementasinya berbeda.
- Polymorphism menyediakan menyediakan multiobject dari sub class yang berbeda diperlakukan sebagai object tunggal dari super class.
-
Pada dasarnya ada 2 tipe polymorphism, yaitu:a. Static atau trivialmerupakan, function overloading (penggunaan kembali nama fungi yang sama tapi dgn argumen yang berbeda) yang terbagi dalam 3 signature yaitu:- Jenis Array- Letak Array- Type ArrayContoh function overloading :- void tambah (int a, int b);- void tambah(float d, float c);b. Dynamic atau trueMerupakan function overriding (sebuah fungsi dalam class turunan yang memiliki nama, return type argumen function yang sama dengan fungsi dalam class induk). Menggunakan virtual method.
Contoh :
1. Buat project di netBeans seperti ini:
2. Pada Packet Sepeda, class Bicycle.java, isikan code seperti ini:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Sepeda; /** * * @author nay */ public class Bicycle { public int gear; public int speed; public int power; public Bicycle(int startGear, int startSpeed, int startPower) { gear = startGear; speed = startSpeed; power = startPower; } public void setPower( int newValue) { power = newValue; } public void setGear( int newValue) { gear = newValue; System.out.println("Gear At"+ gear); } public void applyBreake(int decrement ) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } public void printDescription() { System.out.println("Bike in gear "+this.gear+" with power "+this.power+" and speed "+this.speed); } }
3. Pada Packet Sepeda, class MountainBike.java, isikan code seperti ini:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Sepeda; /** * * @author nay */ public class MountainBike extends Bicycle{ private String suspension; public MountainBike(int startSpeed, int startGear, int startPower, String startSuspension ) { super(startGear, startSpeed, startPower); setSuspension(startSuspension); } public String getSuspension(){ return this.suspension; } public void setSuspension(String suspensionType){ this.suspension = suspensionType; } @Override public void printDescription(){ super.printDescription(); System.out.println("The MountainBike has a" + getSuspension() + "suspension."); } }
4. Pada Packet Sepeda, class RoadBike.java, isikan code seperti ini:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Sepeda; /** * * @author nay */ public class RoadBike extends Bicycle { private int tireWidth; public RoadBike(int startSpeed, int startPower, int startGear, int newTireWidth) { super(startGear, startSpeed, startPower); setTireWidth( newTireWidth); } public int getTireWidth(){ return this.tireWidth; } public void setTireWidth(int newTireWidth){ this.tireWidth = newTireWidth; } @Override public void printDescription(){ super.printDescription(); System.out.println ("The RoadBike has " + getTireWidth()); } }
5. Pada Packet Jalankan, class Main.java, isikan code seperti ini:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jalankan; import Sepeda.Bicycle; import Sepeda.MountainBike; import Sepeda.RoadBike; /** * * @author nay */ public class Main { public static void main(String[] args) { Bicycle bike01, bike02, bike03; bike01 = new Bicycle(20, 10, 1); bike02 = new MountainBike(20, 10, 5, " Dual "); bike03 = new RoadBike(40, 20, 8, 23); MountainBike Ren = new MountainBike(99,9,9," Dual "); bike01.printDescription(); bike02.printDescription(); bike03.printDescription(); } }
6. SELESAI, Tinggal jalankan class Main.java, dan hasilnya akan seperti ini:
0 komentar:
Posting Komentar