S.a. Arkadaşlar,
İnterface, bir class'ta olması gereken method ve property'leri tanımlayan yapıdır. Kendisi normal bir class değildir, sadece neyin yapılacağını göstermekte, ancak nasıl yapılacağını göstermemektedir. Kalıtımı gerekli kıldığı için pek tercih edilmiyor ama zorunlu olduğumuz kullanılabiliriz .[1]
İnterface, bir class'ta olması gereken method ve property'leri tanımlayan yapıdır. Kendisi normal bir class değildir, sadece neyin yapılacağını göstermekte, ancak nasıl yapılacağını göstermemektedir. Kalıtımı gerekli kıldığı için pek tercih edilmiyor ama zorunlu olduğumuz kullanılabiliriz .[1]
İnterface (arayüz)ler %100 abstractırlar. Yani bu ne demektir. İçerdiği
metodlar boş gövdelidir. Ve herhangi bir kod içermezler. Aslında biz interface
aracılığıyla kısmen tasarım yapıyoruz diyebiliriz. Daha sonra implement
edilerek o arayüzü (interface) kullanabiliriz. Fakat içerisinde kesinlikle
başka bir metod tanımlayamayız. Derleyici bize hata verir. Ve bu yüzden biz
interfacelere %100 abstract diyoruz.
Bir sınıf eğer bu metodları kullanacaksa kesinlikle override yapması
gerekmektedir. Çünkü metodlar gövdesizdir. Ve onu override ederek kendimiz
doldurmuş oluyoruzç. Yoksa boş olan metod işimize yaramayacaktır. Fakat burada
dikkat edilmesi gereken kısım abstractların böyle bir zorunluluğu yoktur.
Override etmek zrounda değiller yani.
Kısaca bir interface tanımlayalım ve ne dediğimizi oradan anlatmaya
çalışalım.
public interface Cokgen
exetnds interface1, interface2 {
//double hacim(); hepsi aynı
anlamdadır.
//public abstract double hacim();
public double hacim();
abstract public double alan();
int kenar=1;
//public static final int=1;
}
Burada gördüğümüz gibi , metodlar tanımlanmış ve
gövdeleri boştur. Noktalı virgül ile sonlandırılmışlardır. Dikkat etmemiz
gereken diğer bir husus ise her metod kendiliğinden “abstract public/ public
abstract” tanımlıdır. Yani yukarıda gösterdiğimiz tüm satırlar aynı şekilde
doğru çalışır. Derleyici bunu kendiliğinden ekliyor.
Burada dikkat çekeceğimiz başka bir konu ise çoklu
kalıtım izin verilmesidir interfacelerde. Bilindiği gibi classlarda çoklu
kalıtıma izin verilmezdi. Derleyici hata verirdi ama burada böyle bir şey yok.
Birden fazla sınıftan da ara yüzümüzü kalıtabiliriz. Fakat unutmamak gerekir ki
hiçbir şekilde implement edilemezler. Böyle bir şey yaptığınızda zaten
derleyici size hatayı verecektir.
Dikkat çekmek istediğimzi bir başka konu ise değişken
tanımlamaları. Burada tanımladığımız her değişken sabit tanımlayıcı
değerindedir. Yani ne demek istiyoruz. Yukarıda da belirtilmiş int ile static
int değeriminiz bir farkı yoktur. Her tanımladığımız değer final olarak algılanmaktadır.
Kaynakça
[1]www.kurumsaljava.com/download/68/
Hiç yorum yok:
Yorum Gönder