Java Eğitimi 25-Override

Merhabalar,

Bir önceki yazıda kalıtım konusundan,üst sınıf ve alt sınıf kavramlarından bahsetmiştik. Override özelliği de bu konu ile bağdaştırılabilecek bir kavramdır. Üst sınıftan alınan bir özelliği alt sınıfta değiştirmek “override” olarak adlandırılır. Override, Türkçe’de geçersiz kılmak, ezmek anlamına gelir. Buradan yola çıkarak; başka bir sınıftan alınan özelliklerin geçerliliğini yitirmesi için birkaç kural karşımıza çıkar:

  • Private, final, static metotları override yapılamaz. Sadece tekrar tanımlanarak kullanılması mümkün olur.
  • Üst sınıf içerisinden override edilen metodun alt sınıfta aynı isimle tanımlanması gerekir. Karşıt durumda geçersiz bir işlem olur, hata verir. 
  • Dönüş tiplerinin aynı olması gerekir. 

Alınan bir dersin özelliklerini override ile görmeye çalışalım. Bunun için öncelikle ders adı altında bir class açalım. Bu sınıfın içine yazacağımız kodlar şu şekilde olur:


public class ders {
private int haftalık_ders_saati;
private int dersi_alan_ogr_sayısı;
private String ders_zamanı;

public ders() {
// TODO Auto-generated constructor stub
}

public ders(int haftalık_ders_saati,int dersi_alan_ogr_sayısı,String ders_zamanı) {
super();
this.haftalık_ders_saati = haftalık_ders_saati;
this.dersi_alan_ogr_sayısı=dersi_alan_ogr_sayısı;
this.ders_zamanı = ders_zamanı;
}

public
ders(int ders_aralığı, int haftalık_ders_saati2,
int dersi_alan_ogr_sayısı2) {
// TODO Auto-generated constructor stub
}

public String dersi_işleyen() {
return "Asistan";
}
public int gethaftalık_ders_saati() {
return haftalık_ders_saati;
}

public void sethaftalık_ders_saati(int haftalık_ders_saati) {
this.haftalık_ders_saati = haftalık_ders_saati;
}

public int getdersi_alan_ogr_sayısı() {
return dersi_alan_ogr_sayısı;
}

public void setdersi_alan_ogr_sayısı(int dersi_alan_ogr_sayısı) {
this.dersi_alan_ogr_sayısı = dersi_alan_ogr_sayısı;
}
public String getders_zamanı() {
return ders_zamanı;
}

public void setders_zamanı(String ders_zamanı) {
this.ders_zamanı = ders_zamanı;
}
}

Önce ders sınıfında değişkenleri tanımlamış olduk. Sonra getter ve setter metotları ile değerleri döndürdük. Derslerden birisi yöneylem araştırması olsun. O halde alt sınıf ve üst sınıfın hangisi olduğunu belirleyebilir misiniz? 


public class yöneylem_araştırması extends ders {

private int ders_aralığı;

public yöneylem_araştırması() {
// TODO Auto-generated constructor stub
}

public yöneylem_araştırması(int ders_aralığı) {
super();
this.ders_aralığı = ders_aralığı;
}

public yöneylem_araştırması(int haftalık_ders_saati, int dersi_alan_ogr_sayısı, String ders_zamanı,int ders_aralığı) {
super(int haftalık_ders_saati, int dersi_alan_ogr_sayısı, String ders_zamanı);
this.ders_aralığı = ders_aralığı;
}

public int dersi_alan_ogr_sayısı() {
return 75;
}

public int getders_aralığı() {
return (int) (4);
}

public void setders_aralığı(String string) {
this.ders_aralığı = ders_aralığı;
}

}

Yöneylem araştırması isimli sınıfta da üst sınıf olan ders sınıfının özelliklerini belirledik. Bu işlemi super() metodu ile yaptık. dersi_alan_ogr_sayısı() ile yöneylem dersini alan öğrenci sayısını override ettik. Ve son olarak bu sınıfların özelliklerini bir araya getiren bir sınıf oluşturarak kodları çağıralım. Ekrana özellikleri yazdıralım. 


public class main {
public static void main(String[] args) {

yöneylem_araştırması yöneylem_araştırması = new yöneylem_araştırması();
yöneylem_araştırması.sethaftalık_ders_saati(4);
yöneylem_araştırması.setdersi_alan_ogr_sayısı(65);
yöneylem_araştırması.setders_zamanı("Sabah");


System.out.println("Ders : Yöneylem_araştırması");
System.out.println("---Özellikleri--- ");
System.out.println("Haftalık ders saati : " + yöneylem_araştırması.gethaftalık_ders_saati() + " saattir.");
System.out.println("Dersi alan toplam öğrenci sayısı : " + yöneylem_araştırması.dersi_alan_ogr_sayısı());
System.out.println("Ders zamanı : " + yöneylem_araştırması.getders_zamanı());
System.out.println("İşlenen ders saati : " + yöneylem_araştırması.getders_aralığı() + " saat");
System.out.println("Dersi işleyen : " + yöneylem_araştırması.dersi_işleyen());


System.out.println();

}

}

Main sınıfının ilk aşamasında yeni bir  yöneylem araştırması yarattık. Böylece ders sınıfının özelliklerine erişme imkanı sağlamış oluyoruz. Yöneylem araştırması gibi bir ders adı belirleyip ona ait bir sınıf daha açabilirdik. Onu da main isimli sınıfta yöneylem araştırması gibi yazdırırdık ama ben sadece bir tanesini yaptım. Tekrar görüşmek dileğiyle. Hoşça kalın.

Yorum bırakın