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

Sorunuz mu var? Belki de çoktan soruldu..

0
Abstract sınıf ve abstract fonksiyon nedir aciklayabilirmisiniz ?

Açık 1 Cevaplar 45 Gösterim Java
Program yazarken neden abstract sınıf ve fonksiyon kullanıyoruz? Aslında tam olarak ne anlama geliyor açıklayabilir misiniz?

1 cevap

0

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

21 Kasım 2016 kenan (2,833 puan) cevapladı
...