Genel

Java’da Super Anahtar kelimesi nedir, ne işe yarar, Kullanımı

Java’da bugünki dersimiz super anahtar kelimesinin ne olduğu, ne işe yaradığı, ne amaçla kullanıldığı ve örneği olacaktır..

super–>Bir alt-sınıf ne zaman üst-sınıfına erişmek isterse super anahtar sözcüğünü kullanabilir. super ‘in kullanımı iki türlü olur. Birincisi, üst-sınıfa ait nesne yaratmak içindir. İkincisi, üst-sınıfın öğelerine erişmek içindir.

Ne zaman super anahtar kelimesini kullanmalıyız?
Super class içersindeki bir metodu aynen kullanmak istiyorsanız ve bu metoda ek olarak bazı işlevler de yaptırmak istiyorsanız, super anahtar kelimesini kullanabilirsiniz. Yapmanız gereken şey ise çok basit. Öncelikle super anahtar kelimesini kullanarak metodu çağırın ve ardından ek işlevlerinizi ekleyin. Ayrıntılı bilgiyi aşağıdaki örnekte ve yorum satırlarında bulabilirsiniz.

class Ornek {
    void OrnekMethodu() {
        //işler burada
    }
}
 
class AltOrnekSinifi extends Ornek {
    void AltOrnekSinifiMethodu() {
        super.OrnekMethodu();  // ornek metodu çağırılıyor.
 
        //buraya eklemek istediğiniz işlevleri ekleyebilirsiniz.
    }
 
    //bu işlemi Ornek metodunu override ederekte yapabilirsiniz
 
    void superClassMetodu() {
        //super class metodu ezildi.
 
        super.superClassMetodu();
 
        //buraya eklemek istediğiniz işlevleri ekleyebilirsiniz.
 
    }
}

 

 

Kullanımı : super(parametre);

 

Örnek :

public class Ornek{ 

    private String urunadi;
    private String marka;
    private String model;

    public Ornek(){
    this("a","b","c");
    }
    public Ornek(String urunadi, String marka, String model) { 
        this.urunadi= urunadi; 
        this.marka = marka; 
        this.model = model;
        System.out.println(urunadi + " " + marka + " " + model);
    } 
}

 
class A extends Ornek{
public A(){
super();
    System.out.println("Merhaba A:");
}

}

Örnekte A class’ını main methodunda çağırınca A b=new A();

ekrana öncelikle super ile cağırdığımız super class’ımız olan üst sınıf Ornek içindeki a b c yazılacak sonrasında ise Merhaba A yazılacaktır..

3 thoughts on “Java’da Super Anahtar kelimesi nedir, ne işe yarar, Kullanımı

  • OGÜN

    Merhabalar bi sorum olacakta aşağıda attığım programda ford sınıfının getFiyat() metodu içindeki int fiyat = super.getFiyat(); bu metoda nerden geliyor anlayamadım burdan bakmanız zor olur e-postanızı bırakırsanız kodun rar dosyasını atarım .

    public class Ford extends Araba{

    private int beygirGucu;

    public Ford(String marka, String model, String renk, int hiz, int fiyat, int beygirGucu) {
    super(marka, model, renk, hiz, fiyat);
    this.beygirGucu = beygirGucu;

    }

    public int getBeygirGucu() {
    return beygirGucu;
    }

    public void setBeygirGucu(int beygirGucu) {
    this.beygirGucu = beygirGucu;
    }

    public int getFiyat(){
    int fiyat = super.getFiyat();
    System.out.println(“Eski Fiyat:” + fiyat);
    if (beygirGucu >=120 && beygirGucu <= 140){

    fiyat = (int)(fiyat – fiyat * 0.2);
    setFiyat(fiyat);
    }
    return fiyat;
    }

    public String getRenk(){
    String renk = super.getRenk();
    System.out.println("Eski Renk: " + renk);
    if (renk.equals("Beyaz")){
    renk = "Mavi";
    setRenk(renk); }
    return renk;
    }
    }

    public class Araba {

    private String marka;
    private String model;
    private String renk;
    private int hiz;
    private int fiyat;

    public String getMarka() {
    System.out.println("ARABA");
    return marka;
    }
    public void setMarka(String marka) {
    this.marka = marka;
    }
    public String getModel() {
    return model;
    }
    public void setModel(String model) {
    this.model = model;
    }
    public String getRenk() {
    return renk;
    }
    public void setRenk(String renk) {
    this.renk = renk;
    }
    public int getHiz() {
    return hiz;
    }
    public void setHiz(int hiz) {
    this.hiz = hiz;
    }
    public int getFiyat() {
    return fiyat;
    }
    public void setFiyat(int fiyat) {
    this.fiyat = fiyat;
    }
    public Araba(String marka, String model, String renk, int hiz, int fiyat) {
    System.out.println("ARBA ATAMA");
    this.marka = marka;
    this.model = model;
    this.renk = renk;
    this.hiz = hiz;
    this.fiyat = fiyat;
    }
    }

    public class TestAraba {

    public static void main(String[] args) {

    Ford ford = new Ford("Ford", "Focus", "Beyaz", 300, 30000, 130);
    System.out.println("MAIN");
    System.out.println("Marka: " + ford.getMarka()
    + "\nModel: " + ford.getModel()
    + "\nRenk: " + ford.getRenk()
    + "\nHız: " + ford.getHiz()
    + "\nFiyat: " + ford.getFiyat()
    + "\nBeygirGücü :" + ford.getBeygirGucu());

    Araba araba = ford;
    System.out.println("—————–");
    System.out.println("Marka: " + araba.getMarka()
    + "\nModel: " + araba.getModel()
    + "\nRenk: " + araba.getRenk()
    + "\nHız: " + araba.getHiz()
    + "\nFiyat: " + araba.getFiyat());
    // + "\nBeygirGücü :" + araba.getBeygirGucu());
    }
    }

    Yanıtla
    • Merhaba Ogün,

      Ford Sınıfı Araba sınıfının özelliklerini kalıtım alıyor. Oradaki super.getFiyat(); sınıfı araba sınıfının getFiyat kısmını ifade ediyor. Yani siz aslında ford sınıfındaki fiyat listesini ezip direk araba sınıfını aktif ediyorsunuz.

      Normalde arabanın fiyatı 30000 iken beygir gücüne göre bunu güncelliyorsun.

      Umarım anlatabilmişimdir, eğer anlaşılmayan kısım varsa umiitkose@gmail.com ‘dan bana ulaşabilirsin.

      Yanıtla
      • OGÜN

        kodu anladım fakat işleyişini anlayamadım ekrana bastırmada
        ford.getMarka()
        + “\nModel: ” + ford.getModel()
        + “\nRenk: ” + ford.getRenk()
        + “\nHız: ” + ford.getHiz()
        + “\nFiyat: ” + ford.getFiyat()
        + “\nBeygirGücü :” + ford.getBeygirGucu());
        burdaki metodları benim mantığıma göre yukarıdan aşağıya sırayla yapması lazım ama ilk önce Renk sonra Fiyat metodlarına gidiyor orda aklım karıştı
        kendimce şu notu yazdım aklımda kalsın diye ‘ //metotda super ile baska bir metoda erisiliyorsa ilk o metoddan başlar. ‘

        Yanıtla

OGÜN için bir cevap yazın Cevabı iptal et

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