ABSTRACT SINIFLAR VE INTERFACES

 

Abstract(soyut) sınıflar:

Abstract ( soyut ) sınıflar kalıtımın bize sağladığı ek özelliklerden biridir. Abstract sınıfların kullanım amaçları aslında büyük programlar ya da projeler yapılırken daha net anlaşılıyor.

  • Soyut sınıfların içerisinde yer alan soyut metotların gövdesi bulunmaz.
  • Sadece metot ismi yazılır ve noktalı virgül ile sonlandırılır.
  • Soyut sınıflardan nesne oluşturulamaz.
  • Başka sınıflara miras bırakmak için kalıtımdan yararlanarak extends ile bu işlemi sağlıyoruz.

 

Mesela bir projeniz ve proje ekibiniz bulunuyor. Projede çalışan yazılımcıların hepsinin farklı bir görevi olur ve görevleri dağıtmanız gerekiyor. Proje lideri soyut sınıf oluşturur ve soyut metotlarla kimin ne yapacağını burada belirtir. Proje ekibi üyeleri ise artık soyut sınıf üzerinden işlem yapmaz ve kendisine verilen görevi kalıtım yoluyla kendi dokümanına ekler daha sonra kod yazma işlemine orada devam ederler.

ÖRNEK:

 

Abstract sınıflar içerisinde sadece abstract metotlar tanımlanacak diye bir şart yoktur. İsteğe göre normal metotlar da tanımlanabilir. Ancak abstract metotlar da unutmamanız gereken şey gövdelerinin bulunmamasıdır.

 

Interfaces(Arayüzler):

Arayüzler, tüm sınıflar tarafından kullanılabilecek öğelerdir. Tanımlama yapılırken class ifadesi kullanılmaz interface kullanılır ve sadece metot adlarını barındırırlar. Metotların gövdeleri bulunmadığı için sonlarına mutlaka noktalı virgül konmalıdır.  Arayüzler bir sınıf olarak kullanılmaz sadece bir işin ne olduğunu gösterir nasıl yapıldığını göstermez.

NOT:

  • Sub classların sadece bir adet süper sınıfı bulunabilir. Ancak aynı anda bir sınıfı extend edebilir veya arayüzü implements ile kalıtım alabilirler.
  • Arayüzler de bütün özellikler public, final ve static’tir.

 

Arayüzle Çoklu Kalıtım Sağlamak

  • Kup sınıfı hem Cisim sınıfını extend edebilir hem de Madde arayüzünü implement edebilir.

public class Kup extends Cisim implements Madde { // … }

  • Üstsınıf’ın bir arayüzü implement etmesi durumunda altsınıf ta etmiş sayılır.

public class Cisim implements Madde { // … }

dersek;

public class Kup extends Body{ // … }

dememiz yeterlidir. Küp sınıfı Madde‘yi implement etmeyi de miras yoluyla almış demektir.

 

ÖRNEK:

 

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.