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, 59.169 yükleme)
Java kategorisinden son yazılar
- Java 9 ile Modül Bazlı Yazılım - February 3rd, 2018
- 2015 Yılına Geldik, Hala Spring’le Birlikte İnterface sınıf mı Kullanmak Zorundayız? - May 23rd, 2015
- JVM Nasıl Çalışır Yazı Serisi - Java Dilinde Neden Göstergeçler (Pointer) Yok? - December 30th, 2014
- JVM Nasıl Çalışır Yazı Serisi - Java String Nesnelerinin Hafıza Kullanımı Nasıl Azaltılır? - September 18th, 2014
- Java’ya Nereden Başlamalıyım? - April 2nd, 2014
- java.lang.IncompatibleClassChangeError: Implementing class Nedir ve Analizi Nasıl Yapılır? - March 15th, 2014
- Yazılımcının Verimliliğini Artıran Eclipse Ayarları - January 1st, 2014
- Java Generics Get ve Put Prensibi - January 30th, 2013
- Uzaktan Eşli Programlama - September 30th, 2012
- Sorumluluk Sahibi Olmak - August 20th, 2012
Yasin
19 Kasım 2008Makale 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 2008Content-type da bir sorun olsa gerek, ben kodu tekrar kontrol edecegim.
osman haktan
20 Kasım 2008Yazı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 2008Sevgili 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 2008Merhaba,
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 2009Selamlar
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 2009Merhaba;
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 2009Bö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 2012Mü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