public class CokBicim { public static void main(String[] args) { Hayvan hayvan = new Hayvan("Hayvan"); Kedi kedi = new Kedi("Minnoş"); Kopek kopek = new Kopek("Karabaş"); Hayvan h_dizi[] = new Hayvan[10]; h_dizi[0] = hayvan; h_dizi[1] = kedi; // istençsiz dönüşüm - Upcasting h_dizi[2] = kopek; // istençsiz dönüşüm - upcasting for(Hayvan h: h_dizi){ if(h != null) if(h instanceof Hayvan) listele(h); } /*hayvan.seslendir(); kedi.seslendir(); kopek.seslendir();*/ Hayvan h = new Kopek("Tarçın"); h.seslendir(); if(h instanceof Kedi){ Kedi kedi2 = (Kedi)h; kedi2.seslendir(); } //Kedi kedi3 = new Hayvan("Şeker"); // Alt tür üst türe dönüştürülemez /* Hayvan h2 = new Kopek("Safari"); Kopek k3 = (Kopek)h2; k3.seslendir(); */ /* Hayvan h4 = new Kedi("Minik"); //h4.avlan(); Kedi k5 = (Kedi)h4; k5.avlan(); */ } static void listele(Hayvan h){ h.seslendir(); } } class Hayvan{ String isim; public Hayvan(String isim) { this.isim = isim; } void seslendir(){ System.out.println("Hayvan ses çıkarıyor."); } } class Kedi extends Hayvan{ public Kedi(String isim) { super(isim); } @Override void seslendir() { System.out.println(isim+" miyavlıyor."); } void avlan(){ System.out.println(isim+" fare yakaladı."); } } class Kopek extends Hayvan{ public Kopek(String isim) { super(isim); } void seslendir(){ System.out.println(isim+" havlıyor."); } }