Soyut sınıflar, kendisinden türetilecek olan sınıflara arayüz sağlar. Türeteceğiniz yeni sınıfları bir kalıba(arayüz) zorlar ve kalıtımla kod tekrarını azaltır. Soyut sınıfllar, tek başlarına bir anlam ifade etmezler. Bu yüzden soyut sınıflardan nesne üretilemez.
abstract anahtar kelimesini metot veya sınıfların başlarına yazarak tanımlayabilirsiniz. Eğer bir absract metot tanımladıysanız kesinlikle o metotun sınıfını da abstract olarak tanımlamalısınız. Aksi takdirde hata verecektir.
Soyut metotlara kendi sınıfı içinde gövde yazılamaz ve türetildiği sınıfta bu metotlar ezilmek(override) zorundadır yani yeniden tanımlanmalıdır.
Interface (Arayüzler)
Arayüzler soyut sınıflar ile hemen hemen aynıdır. Alt sınıflara bir standart belirlersiniz ve alt sınıflarda bu standarta uymadığınız zaman hata verir. Soyut sınıf iki temel farkı vardır
Arayüzlerde sadece gövdesiz metot tanımlaması yapabilirsiniz.
Soyut sınıflarda sadece bir kez miras(extends) alarak uygulayabilirken, arayüzlerde istediğiniz kadar uygulayabilirsiniz(implements).
interface anahtar kelimesi ile tanımlanır ve implements anahtar kelimesi ile sınıflara uygulanır.
abstract anahtar kelimesini metot veya sınıfların başlarına yazarak tanımlayabilirsiniz. Eğer bir absract metot tanımladıysanız kesinlikle o metotun sınıfını da abstract olarak tanımlamalısınız. Aksi takdirde hata verecektir.
Soyut metotlara kendi sınıfı içinde gövde yazılamaz ve türetildiği sınıfta bu metotlar ezilmek(override) zorundadır yani yeniden tanımlanmalıdır.
Interface (Arayüzler)
Arayüzler soyut sınıflar ile hemen hemen aynıdır. Alt sınıflara bir standart belirlersiniz ve alt sınıflarda bu standarta uymadığınız zaman hata verir. Soyut sınıf iki temel farkı vardır
Arayüzlerde sadece gövdesiz metot tanımlaması yapabilirsiniz.
Soyut sınıflarda sadece bir kez miras(extends) alarak uygulayabilirken, arayüzlerde istediğiniz kadar uygulayabilirsiniz(implements).
interface anahtar kelimesi ile tanımlanır ve implements anahtar kelimesi ile sınıflara uygulanır.