Java’da interface ve soyut (abstract) sınıf kullanımı

Java dilinde interface adını taşıyan, tasarım şablonlarında ve modellemede kullanılan sınıflar tanımlamak mümkündür. Bir interface normal bir Java sınıfından farksız bir şekilde tanımlanır. Sınıf tanımlanırken class yerine interface terimi kullanılır.

Bu yazıyı PDF olarak edinebilirsiniz.

  Java'da Interface ve Abstract Sınıflar (273,4 KiB, 42.805 yükleme)

Share Button
0.00 avg. rating (0% score) - 0 votes

10 Comments

  • Yasin

    19 Kasım 2008

    Makale için çok teşekkürler.

    Makale .jsp uzantılı geliyor, bunu pdf’e dönüştürmemiz gerekiyor. Bu bir hata mı, yoksa normal mi?

  • acar

    20 Kasım 2008

    Content-type da bir sorun olsa gerek, ben kodu tekrar kontrol edecegim.

  • osman haktan

    20 Kasım 2008

    Yazınız için teşekkürler. Kitabınızın türkçe kaynak arayanlar için çok yardımcı olacaktır muhakkak.
    Yazınızda geçen “Örneğin C++ dilinde mevcut olmayan bu yapılar, Java diline esnek yazılımlar yapılabilmesi adına büyük zenginlik katmaktadır” ibaresinin doğru olmadığı kanaatindeyim. C++ ta da içerisinde veri olmayan soyut sınıflar tanımlayıp bunları kalıtım (inheritance) yoluyla tıpkı java interface leri gibi kullanabilirsiniz (unutmayalım ki C++ çoklu kalıtımı da destekler). Kurumsal C++ uygulamalarında sık kullanılan bu tasarım kalıbı Java da anahtar isim (keyword) verilip, kullanım kuralları daha belirginleştirilmiştir. Yani “zenginlik katmaktadır” kısmını doğru bulmadım. Kullanmasını bilen için zenginlik başka yerlerde zaten vardı. Java’nın C++ a göre sağladığı çok büyük esneklikler var muhakkak ama bu onlardan biri değil.
    Kitabınızdan bir bölümü bizlerle paylaştığınız için tekrar teşekkür ediyorum, umarım kitabınızın diğer bölümlerini de zaman içinde paylaşır ve öğrenmeye hevesli arkadaşlara yardımcı olmuş olursunuz.

  • acar

    20 Kasım 2008

    Sevgili Osman, yorumun için tesekkür ederim. Ben C++ uzmanı değilim, lakin C++ daki OO konseptlerini taniyorum. C++ da tamamen soyut olan sınıflar tanımlıyarak, Java interface lere benzer yapılar oluşturmak mümkün, lakin benim kast ettigim C++ da safkan interface konseptinin olmadığıydı. Ama haklısın, cümle daha değişik ifade edilerek, C++ ve Java arasındaki farkın interface siniflar açısından altı çizilebilirdi. Yazı üzerinde gerekli değişikliği yapacağım.

  • sami dirik

    29 Kasım 2008

    Merhaba,
    Sitenizi yahoo bilgisayar grubuna attığınız mailden gördüm ve oldukça hoşuma gitti. İçerik arttıkça daha da güzel olacağına inanıyorum.
    Başarılar.

  • Abdulkadir

    06 Nisan 2009

    Selamlar
    Java’da interface ve soyut (abstract) sınıf kullanımı ile ilgili makaleniz cok mutis olmustu anlasilir bir dil ve ornegin olmasi makalenizi cok mutis yapmis cok tesekurler kendinize iyi bakin hayirli gunler

  • Emre SÜREN

    21 Eylül 2009

    Merhaba;
    Dokumandaki bir ornek le ilgili bir parca bilgi aktarayim.

    Orneklerde once iki tane kotu tasarimdan daha sonra composition ile nasil esnek ve kaliteli bir cozum yapilacagi anlatiliyor 16. sayfadan sonra. O bolumu kisaca buraya tasiyorum;

    Ilk olarak,
    Abstract class a fax metodu ekleyerek cozum sunulmus.
    Bu cozumun iyi bir cozum olmadigi, fax cekme ozelligi olmayan printerlar icin de bu fax metodu kullanima erisilir oldugundan bahsedilmis.

    daha sonra 2. cozum yolu olarak
    Abstract class a fax metodunu eklemek yerine interface bir sinif tanimlayip cozum gosterilmis.
    Bu cozumun de iyi bir cozum olmadigi, kod tekrari yapacagindan bahsedilmis.
    Yani butun printerlar icin tek tek implementation yapilmasi gerekitigi aciklanmis.

    Yanliz burada gozden kacan birsey var,
    Ilk ornek te bile,
    Printer multi = new MultiPrinter(); seklinde kullanim mumkun iken, burada mumkun degildir. Cunku fax metoduna ulasilamaz, MultiPrinter multi = new MultiPrinter(); seklinde kullanilmak zorunda. Bu daha buyuk bir problem.

    Iyi calismalar.

  • acar

    22 Eylül 2009

    Böyle bir örnek cast gerektiriyor, sorun ne yazik ki örnegin kendisinde yatiyor. Nasil bir cözüm uygulanabilecegi 21. sayfadan itibaren aktarilmis.

  • İbrahim Gündüz

    04 Aralık 2012

    Müthiş bir makale, sadece 6 sayfa okudum. İnterface konusunu müthiş anlatmış, teşekkür ederim.

  • Pingback: Pratik Programcı Yayınları » Neden Spring, JPA ve Diğer Çatılar ÖğrenilmeMEli

Comments are closed.