Java ile Inheritance (Kalıtım) Yapma Örneği

17 Ocak 2010 – 01:56

Java ile kolay bir kalıtım örneği yapalım. Car isminde bir arabanın sahip olabileceği temel özelliklere sahip bir ana class yaratalım ve bu classtan kalıtımla türettiğimiz özelleşmiş arabalar oluşturalım. Öncelikle Car classımızı yazalım. Temel olarak bir arabaya hız, fiyat ve renk özelliklerini kazandıralım.

 

public class Car {

    int speed;

    double regularPrice;

    String color;

   

//constructorda bu değerleri initialize edelim

    public Car(int speed,double regularPrice,String color){

        this.speed=speed;

        this.regularPrice=regularPrice;

        this.color=color;

    }

 

//main fonksiyonunda arabanın fiyatına erişebileceğimiz bir metod yazalım

    public double getSalePrice(){ return regularPrice; }

 

}

 

 

Daha sonra bu classtan türetilmiş kendi içinde farklı özellikleri olan farklı arabalar (subclasslar) üretelim.

Bir tane Car classını kalıtımla alan Sedan tipinde araba classı üretelim. Bu araba tipinde temel araba özelliklerinin yanında bir de uzunluğunu belirleyebilelim ve sedanın fiyatını, uzunluğu 20den büyükse 5% indirimli değilse %10 indirimli hale getirelim.

 

//kalıtım yapmak için extends ifadesini kullanıyoruz

public class Sedan extends Car{

    int length;

 

//constructorda sedanın özellikleri belirlensin

    Sedan(int speed,double regularPrice,String color,int l){

         //super ifadesiyle ana classtaki değişkenlere erişebiliyoruz

        super(speed,regularPrice,color);

        this.length=l;

    }

 

//fiyatı uzunluğa göre belirleyen get metodu yazalım

//dikkat ederseniz burada ana classtakiyle aynı isimde getSalePrice metodu yazdık

// override yapıyoruz

    public double  getSalePrice (){

        if(length>20){

            return super.getSalePrice()-super.getSalePrice()*5/100;

        }

        else{

            return super.getSalePrice()-super.getSalePrice()*10/100;

        }

    }

 

}

 

 

Şimdi gene Car ana classımızdan türeyen Ford isimli bir araba üretelim. Burada arabanın özelliklerine ek olarak Ford marka arabamızın yaşını ve fiyat indirimini de ekleyelim.

 

public class Ford extends Car{

    int year;

    int manufacturerDiscount;

 

//constructorda özellikleri initialize edelim

    Ford(int speed,double regularPrice,String color,int year,int manufacturerDiscount){

        super(speed,regularPrice,color);

        this.year=year;

        this.manufacturerDiscount=manufacturerDiscount;

    }

 

//override ile getSalePrice metodunda Fordun indirimli fiyatını verelim

    public double getSalePrice(){

        return super.getSalePrice()-this.manufacturerDiscount;

    }

 

}

 

Bir de gene Car classından türeyen bir kamyon (Truck) üretelim. Burada ek olarak ağırlık özelliğini de verelim ve ağırlığı 2000kg dan büyükse %10, farklıysa %20 indirimli fiyat indirimi yaptıralım.

 

public class Truck extends Car{

    int weight;

 

//constructorda değerleri initialize ediyoruz

    Truck(int speed,double regularPrice,String color,int weight){

        super(speed,regularPrice,color);

        this.weight=weight;

    }

 

//override ile getSalePrice metoduna kamyonun ağırlığına göre indirim yaptırıyoruz

    public double getSalePrice(){

        if(weight>2000){

            return super.getSalePrice()-super.getSalePrice()*10/100;

        }

        else{

            return super.getSalePrice()-super.getSalePrice()*20/100;

        }

    }

}

 

Şimdi de main classta türettiğimiz bu arabaları kullanalım. Oluşturduğumuz bu araba tiplerinin nesnelerini oluşturarak fiyatlarını alalım.

 

public static void main(String[] args) {

        Sedan MySedan=new Sedan(230,1200.50,”red”,20);

        Ford MyFord1=new Ford(180,1000.90,”black”,2008,100);

        Ford MyFord2=new Ford(200,1300.90,”grey”,2009,50);

        Car MyCar=new Car(100,999.99,”white”);

 

        System.out.println(MySedan.getSalePrice());

        System.out.println(MyFord1.getSalePrice());

        System.out.println(MyFord2.getSalePrice());

        System.out.println(MyCar.getSalePrice());

 

    }

 

Programı run ettiğimizde

1080.45

900.9

1250.9

999.99

 

Sonuçları geldi. Görüldüğü gibi her bir arabanın fiyatı kendi tipine, özelliklerine göre değişmiş oldu.

Bookmark and Share

Post a Comment

Subscribe without commenting