3 Nisan 2013 Çarşamba

JAVA'DA KALITIM(INHERITANCE)

Kalıtım konusuna C++ başlığı altındaki kalıtım(inheritance) adlı yazımda değinmiştim.Zaten mantık hepsi için aynıdır farklı olan ise kullanılan bazı anahtar sözcükler ve metodlardır.Bu yazımda da bunlardan bahsedeceğim.
Kısaca kalıtım neydi?Bir ana/süper sınıf ve ondan türeyen alt sınıfımız vardır.Böylece kod tekrarından kurtularak güvenilir ve kullanışlı programlar yazmış oluruz.
Şimdi de java da  kalıtım(inheritance)  konusuna dönelim.

Extends :Alt sınıfın süper sınıftan miras almasını sağlar.Kullanımı şu şekildedir.
public class derived_class extends super_class{//body}

Super() metodu:Kalıtımda yapılandırıcılar yukarıdan aşağıya yani süper sınıftan alt sınıfa doğru çalışır.Super sınıfın yapılandırıcılarını alt sınıflarda super() metodu ile çağırırız.Eğer super sınıf parametre almışsa super() metodu da onun parametrelerini alır.Aşağıdaki programda belirtilmiştir.

@Override:Metot overriding ile süper sınıfta tanımlanmış aynı isim,parametre ve dönüş tipine  sahip metotların alt sınıflarda kullanımı sağlamak için  kullanılan bir yöntemdir.Metodun işlevi aynıdır fakat değerlerinde ,dönüş tiplerinde değişiklik yapılır.

İşte program....


//*************
//Super class
//**************
package kalitim;
public class personel {
 private String ad;
 private int tc;
 public personel(String ad,int tc)
 {
  this.setAd(ad);
  this.setTc(tc);
 }
 public String getAd() {
  return ad;
 }
       public void setAd(String ad) {
  this.ad = ad;
 }
      public int getTc() {
  return tc;
 }
      public void setTc(int tc) {
  this.tc = tc;
 }
     public String print()
 {
  return "ad : "+getAd()+"\ntc : "+getTc();
 }
}


//*************
//Derived class
//**************
package kalitim;
public class ogrenci extends personel {
 private int okul_no;
 
 public ogrenci(String ad,int tc,int okul_no)
 {
   super(ad,tc);  //super sınıfın parametreli yapılandırıcısı çağrılır ve atama yapılır.
   this.okul_no=okul_no;
 }
 public int getOkul_no() {
  return okul_no;
 }
 public void setOkul_no(int okul_no) {
  this.okul_no = okul_no;
 }
 @Override
 public String print() //print metodu override edilmiştir çünkü okul no eklenmiştir.
 {
  return super.print()+"\nokul no : "+getOkul_no();
 }
}


//*************
//Main
//**************
package kalitim;

public class mainn {

 /**
  * @author Aylin COSKUN
  */
 public static void main(String[] args) {
  personel i=new personel("Aylin COSKUN",12345);
  System.out.println(i.print());
  System.out.println("**********************");
  ogrenci o=new ogrenci("Aynur GUNDOGAN",23456,21);
  System.out.println(o.print());
 }
}


Program çıktısı:








2 yorum:

  1. çok güzel anlatım olmuş, teşekkür ederim

    YanıtlaSil
  2. Slotyro Casino Hotel - Mapyro
    Find 남원 출장안마 your way around 경산 출장안마 the casino, catch 문경 출장마사지 a glimpse 동해 출장샵 of the action and 용인 출장안마 entertainment that awaits you at this charming casino hotel in Henderson, Nevada.

    YanıtlaSil