Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
64 gösterim
Program yazarken neden abstract sınıf ve fonksiyon kullanıyoruz? Aslında tam olarak ne anlama geliyor açıklayabilir misiniz?
Java kategorisinde (115 puan) sordu

1 cevap

0 oy

Selamlar,

Abstract fonksiyon; interface gibi elinde gerçekleştirimi olmayan fonksiyonlardır ve abstract sınıflar içinde bulunur. Normal sınıf abstract fonksiyon bulunduramaz. Neden gerçekleştirimi bulunmaz? Çünkü bu sınıftan extend/kalıtlama yapan bir sınıf üzerinden gerçekleştirimi yapılır, yapılması istenir. 

Örnek verebilmek için gündelik hayattan birşeyler düşündüm ama pek birşey aklıma gelmedi. Kesin vardır. Ben programlama dünyasından yine de örnek vermeyi düşündüm.

Elinde veritabanı işlemlerini yapan bir katman olacağını düşün. Veritabanı bağlantısı yapmak, statement oluşturmak, bağlantıyı kapatmak gibi işlemler her zaman aynı olan ve değişmeyen işlemlerdir. Ama silme işlemi, insert işlemi tabloya göre değişmesi gerekir. Bu durumda bağlan, bağlantıyıKopar, statment oluştur gibi işlemleri normal fonksiyon, silme, ekleme gibi işlemleri abstract bırakabilirsin. Sonra tablo bazında sınıflar oluşturup işlemini yapabilirsin. Kod örneği de yapalım.

abstract class TemelIslemler {
  Connection baglanti;

  protected Connection baglan() {
    // baglanti = db bağlantı kodları
  }

  protected void kes() {
    baglanti.close();
  }

  public abstract void ekle(Object obje);

  public abstract void sil(int id);

  ...
}

Burda gördüğün gibi bağlantıyı açan ve kapatan kodların gövdesi var. Ama ekle ve sil için yok. Devam edelim.

class UyeIslemleri exteds TemelIslemler {
  public void ekle(Object) {
    baglan();
    ..... // ekleme işlemleri - insert into....
    kes();
  }

  public void sil(int id) {
    baglan();
    ....// delete işlemleri - delete from
    kes();
  }
}

Burdan gördüğün gibi; bağlan ve kes işlemleri zaten daha önceden yazılmıştı. Biz sadece ekle/sil komutlarını gerçekleştirdik. Asıl olay yine interface de olduğu gibi olup TemelIslemler ti = new UyeIslemleri() diyerek kullanabilmemiz. Bu kullanım için interface örneğini inceleyebiliriz.

http://hasscript.com/601/interface-tam-olarak-nedir-aciklayabilirmisiniz

(3.1k puan) cevapladı

İlgili sorular

0 oy
1 cevap 61 gösterim
0 oy
1 cevap 26 gösterim
26 gösterim 5 Ağustos 2017 Genel Kavramlar kategorisinde kenan (3.1k puan) sordu
0 oy
1 cevap 33 gösterim
33 gösterim 15 Kasım 2016 Java kategorisinde kambala (115 puan) sordu
0 oy
0 cevap 23 gösterim
23 gösterim 9 Ocak Java kategorisinde kenan (3.1k puan) sordu
0 oy
1 cevap 22 gösterim
...