Abstrakt sinifler adi siniflerden ferqlenir.Teyin olunarken qarsisinda abstrakt isci sozu yazilir.bunlarin obyekti birbasa new sozu ile yaradilmaz.Bir sinifin abstrakt olmasi ucun onun daxilinde en azi bir abstrakt metod olmalidir.Hec bir is gormeyen yeni , govdesiz metoda abstrakt metod deyilir.Abstract bir sinifden extends olunan altsinifller bu abstract sinifin icindeki butun abstrakt metodlari mutleq override etmelidir. Abstract siniflerin Javada esas vezifesi birlesdirici rol oynamasidir.Asagidaki numuneye baxaq:
public abstract class Calisan {
public abstract void calis();
public void istirahetEt(){
System.out.println("Istirahet vaxti");
}
}
public class Mudur extends Calisan {}
@Override
public void calis() {
System.out.println("Mudur calisir");
}
}
public class MudurMuavini extends Calisan {
@Override
public void calis() {
System.out.println("MudurMuavini calisir");
}
}
public class Programci extends Calisan {
@Override
public void calis() {
System.out.println("Programci calisir");
}
}
public class IsYeri {
public static void Isebasla(Calisan[] c){
for (int i = 0; i < c.length; i++) {
c[i].calis();
}
}
public static void main(String[] args) {
Calisan[] c=new Calisan[3];
c[0]=new Mudur();
c[1]=new MudurMuavini();
c[2]=new Programci();
Isebasla(c);
}
}
Belece Abstract bir sinifden extends olunan altsinifllerin obyekti asanliqla Abstract sinif tipinde olan referansa baglanir ve polimorfizm ve gec baglanmanin istifadesi mumkun olur.
Hiç yorum yok:
Yorum Gönder