Polymorphism (Java)

POLYMORPHISM (Çok Biçimlilik)

Çok biçimlilik bir nesnenin birden fazla nesne gibi davranması şeklinde tanımlanabilir. Kod üzerinde gösterecek olursak örneğin:

Hayvan hayvan = new Kedi(“Tekir”); şeklinde hayvan referansı kullanarak kedi objesi oluşturma çok biçimlilik örneğidir. Özellikleri:

1-Bir ana sınıf olacak geri kalanlar da alt sınıf olacak.

2- Alt sınıfların referanslarını üst sınıftaki referanslara eşitleyebiliyoruz

3- Polymorphism olması için mutlaka inheritance olması gerekiyor.

Aşağıda hayvanlarla ilgili bir çok biçimlilik örneği yer almaktadır.

class Hayvan{
    private String isim;

    public String getIsim() {
        return isim;
    }

    public void setIsim(String isim) {
        this.isim = isim;
    }

    public Hayvan(String isim) {
        this.isim = isim;
    }
    public String konus(){
        return "Hayvan konusuyor";
    }
    
    
}

class Kedi extends Hayvan{

    public Kedi(String isim) {
        super(isim);
    }

    @Override
    public String konus() {
        return this.getIsim() + " miyavlıyor"; Templates.
    }
    

}

class Kopek extends Hayvan{

    public Kopek(String isim) {
        super(isim);
    }

    @Override
    public String konus() {
        return this.getIsim() + " havlıyor"; 
    }
    


}
class At extends Hayvan{

    public At(String isim) {
        super(isim);
    }

    @Override
    public String konus() {
        return this.getIsim() +  " kişniyor";  
    }
    

}


public class PolymorphismUdemy {
    public static void konustur(Hayvan hayvan){
        System.out.println(hayvan.konus());
    }
    
    public static void main(String[] args) {
      /* 
        Hayvan hayvan = new Kedi("Tekir");
        Hayvan hayvan2 = new At("Düldül");
        System.out.println(hayvan.konus());
        System.out.println(hayvan2.konus());
      */
      Hayvan hayvan1 = new At("Düldül");
      Kopek kopek = new Kopek("Karabas");
      if(kopek instanceof Kopek){ // instanceof koşul durumunun içinden sınıfa ait olup olmadıgına gore calisir
            System.out.println("Bu nesne kopek sınıfından");
    }
      System.out.println(" " + hayvan1.konus());
      
      
    }
    
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir