Thursday, April 19, 2012

Inheritance dan Polymorphism


INHERITANCE
Pengertian Inheritance
• Inheritance merupakan salah satu dari tiga konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek / y dapat mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
• Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
• Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.

Deklarasi Inheritance
• Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent classnya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

Contoh Program:

Animal.java
class Animal{
    String makanan;
    String suara;
    //konstruktor
    public Animal(String makanan, String suara){
        System.out.println("Binatang");
        this.makanan = makanan;
        this.suara = suara;
    }
    //method - method
    void makan(){
        System.out.println("Anjing memakan tulang");
    }
    void bersuara(){
        System.out.println("Anjing suaranya Gug gug gug...");
    }

}

Kucing.java
class Kucing extends Animal {
String jenisKucing;
    //konstruktor
    public Kucing(String makanan, String suara, String jenisKucing){
                super(makanan,suara);
                this.jenisKucing = jenisKucing;
                System.out.println("tercipta kucing "+jenisKucing);
    }
    //overide method makan
    void makan(){
        System.out.println("kucing memakan "+this.makanan);
    }
            //override mthod bersuara
    void bersuara(){
        System.out.println("Kucing suaranya "+suara);
    }

}

AnimalTest.java
class AnimalTest {
    public static void main(String[] args){
            Animal animal = new Animal("nasi", "hmmm");
            animal.makan();
            animal.bersuara();
            System.out.println();
            Kucing anggora = new Kucing("Ikan","miau..miau..miau","anggora");
            anggora.makan();
            anggora.bersuara();
}
}

OUTPUT 














POLYMORPHISM
Setelah inheritance, hal yang penting bagi object oriented programming adalah polymorphism. Secara leksikal polymorphism merupakan sesuatu yang mempunyai banyak bentuk. Dalam pemrograman polymorphism merupakan dapat diartikan suatu modul yang mempunyai nama sama, tapi memiliki behavior yang berbeda sehingga listing code implementasinya berbeda. Dan dalam bahasa yang lain adalah kemampuan dari reference untuk mengubah sifat sesuai dengan object yang dijadiin acuan. Polymorphism menyediakan menyediakan multiobject dari sub class yang berbeda diperlakukan sebagai object tunggal dari super class.

Contoh Program:

Bicycle.java
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);
}

}

MountainBike.java
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.”);
}
}

RoadBike.java
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()
);
}

}

Main.java
public class Main {

/**
* @param args the command line arguments
*/
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();
}
}


OUTPUT
















Related Posts



0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More