Abstract Class ve Interface Farkı Nedir ?

Okuma Süresi: 2 dakika
A+
A-

Abstract classlar ve interfaceler aslında birbirinden tamamen farklı yapılardır. Aşağıda kısaca hem abstract classlardan hem de interfacelerden bahsedip nasıl kullanıldıklarını ve farklarını açıklayalım.

Abstract Class Nedir ?

Abstract classlar base class olarak kullanılan yapılardır. Abstract classlardan nesne örneği yaratılamadığından dolayı zorunlu olarak başka classlara kalıtım vermek zorundadırlar. Abstract classların içerisinde , abstract olarak işaretlenen yapıların(property, method ) sadece imzaları oluşturulup, inherit olduğu yerde override edilerek gövdeleri doldurulur. Abstract classlardan nesne yaratılamaz !
Abstract class içerisinde hem abstract olan hem de abstract olarak işaretlenmemiş yapılar olabilir. Abstract classların içerisindeki abstract memberlar , inherit edildiği yerde override edilmesi zorunludur !

Abstract olarak işaretlenmiş hayvanSesi metodunu ( inherit olduğu yerde gövdesi doldurulacak ) ve bir Uyu metoduna sahip bir Hayvan Abstract classı;

Interface Nedir ?

Interfaceler classlara sözleşme/kontrat veya yetenek kazandırmak için kullanılan bir yapıdır. Interfacelerin bir classa implement edilmesi zorunludur, aksi halde interfaceler kullanılamazlar. İnterfaceler içerisinde sadece imzalar oluşturulup, gövdeler implemen edilen classların içerisinde doldurulur. Bir interface de yazılan tüm metotlar implement edildiği yerde kullanılmak zorundadır. Interfacelerden nesne yaratılamaz.

Abstract Class ve Interface Farkı Nedir ?

  • Bir class sadece bir tane abstract classtan miras alabilirken bir class bir den fazla interface’i implement edebilir.
  • Abstract classların içlerinde gövdelere kod yazılabilirken interface’lerde ise sadece imzalar oluşturulabilir, gövde oluşturulup kod yazılamaz.
  • Abstract classlar base class olarak kullanılır, interfaceler implemen edileceklere classlara yetenek kazandırmak amacıyla kullanılır.

Bir Yorum Yazın

Ziyaretçi Yorumları - 0 Yorum

Henüz yorum yapılmamış.