JAVA 'da Arayüzler(İnterface) ile Sınıf Arasındaki Fark Nedir?
8
●831
- 31-05-2013, 23:46:52Kimlik doğrulama veya yönetimden onay bekliyor.PHP'yi baz alarak açıklayayım ben. JAVA'da da aynıdır sanıyorum.
"Interface"ler belirli kalıplar oluşturmanızı sağlar. Bu kalıplara sahip de "class"lar oluşturursunuz. Yani arayüzler sınıflarınızın çerçevesini oluşturur. O arayüzden sınıf tanımlarken (PHP'de "implements" komutu ile yapılıyor) sadece çerçevenin içine resimi yerleştirirsiniz.
Tek cümle ile ifade etmek gerekirse; "interface"lerle projenize standartlar getirebilirsiniz. - 31-05-2013, 23:57:48hocam arada çok fark var.
ilk olarak interfacelere kod yazamazsın, sadece metod tanımı, property tanımı, indexer ve event tanımlayabilirsin ama içine kod yazamazsın. class larda ise bunu yapabilrsin.
örnek vermek gerekirse
public interface IDeneme { string Yazdir(); int Toplam {get; set; } string Isim{get; set; } }javada getter ve setterler farklı olabilir tam hatırlamıyorum. şimdi Ideneme interfaceinde gördüğün gibi sadece metodun ismi yazılı, gövdesi yazılı değil ve de değişken olarak field değil property yazdık. ama class daha farklı
public class Deneme { string Yazdir() { Println("....."); } int Toplam {get; set; } string Isim{get; set; } int Yas; }ikinci önemli fark ise classlarda çoklu kalıtım yok. (javada da böyle olması gerekiyor diye hatırlıyorum)
mesela
class A{}
class B{}
class C : A,B {} yapamam.... (javada implements kullanılıyor)
ancak interface çoklu kalıtımı destekler.. örnek
public interface A {}
public interface B {}
public class C: A,B {}
gördüğün gibi C class ımız A ve B den miras aldı. Bu da demektir zorunlu olarak A ve B de bulunan tüm metodları,propertyleri ... C classında zorunlu olarak barındıracaktır..
bunla ilgili internette çok örnek bulabilirsin.. - 01-06-2013, 09:46:05Hocam Abstract sınıf kullanarakda kod yazmadan arayüzün yaptığı işin aynısını yapabiliyorsun. Öyleyse sınıf ile arayüz arasındaki tek farkın ÇOKLU KALITIM mıdır?ertan2002 adlı üyeden alıntı: mesajı görüntüle
- 01-06-2013, 12:15:57Miras verdiğin sınıfta metodları ezebiliyorsun, sadece çoklu kalıtım özelliği yok. Tek fark çoklu kalıtım sanırım.ertan2002 adlı üyeden alıntı: mesajı görüntüle
- 01-06-2013, 14:55:59Hocam abstract sınıfta da zorunlu. Abstract sınıfta bir abstract metotu mutlaka ezmek gerekiyor yoksa hata veriyor derleyici.ertan2002 adlı üyeden alıntı: mesajı görüntüle