Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Java - Abstract Class Nedir?



  December 26, 2018    Labels:,,,,,,, 

Abstract sınıflar genellikle Java'da oluşturduğumuz sınıfların ortak özelliklerini bir arada toplamak için kullanılır. Bu yüzden abstract sınıflardan bir nesne yaratılamaz. Abstract sınıflarımızın içerisinde içi dolu veya boş metotlar ve değişkenler tanımlayabiliriz. İçi boş metottan kastettiğimiz şey sadece metodun var olduğunu ve extend edilen sınıfta kullanılması gerektiğini ama ne yapacağını belirtmediğimiz metotlardır. Abstract sınıflar bu yönleri ile interface'lere çok benzemektedir. Interface ile de aynı şekilde bir sınıfın alması gereken metotları belirtebiliyorduk. Interface ile belirttiğimiz metotlarında sadece ismini, dönüş değerini ve aldığı parametreleri belirtiyorduk. Abstract sınıflarda da gövdesiz metotlar ile aynı işi yapabiliyoruz. Abstract sınıflarda oluşturduğumuz gövdesiz metotların başına abstract anahtar kelimesini koymamız gerekiyor. Aynı şekilde bir sınıfın abstract olduğunu belirtmek için de sınıfın başına abstract anahtar kelimesini koyuyoruz. Bir diğer dikkat edilmesi gereken konu da eğer bir sınıfta abstract bir metot varsa o sınıf abstract bir sınıf olmak zorundadır.

package deneme;

public abstract class Canli {

    int yas;

    public abstract void yaslan();

    public void yemekYe() {
        System.out.println("yemek yendi");
    }

}

class Insan extends Canli {

    public void yaslan() {

        yas++;
    }

}

Abstract sınıfların interface'ler ile benzerliklerini anlattık. Peki hangi durumda hangi yapıyı kullanacağımıza nasıl karar vereceğiz diye merak ediyorsanız bunun cevabı çok basittir. Interface yapısında has a ilişkisi vardır. Yani türkçe olarak sahiptir anlamına gelir. Örnek olarak insan sınıfı kıyafet adında bir interface'i implements ederek bu sınıfın metotlarını kullanabilir. Örneğin bu metotlar kıyafetiGiy veya kiyafetiTemizle olabilir. Abstract yapıda ise is a ilişkisi vardır. Örneğin insan bir canlıdır ilişkisi is a ilişkisidir. Eğer bir sınıf diğer sınıfın alt bir türü ise örneğin araç ve araba veya bisiklet sınıfları gibi o zaman abstract sınıflar kullanılır. Burada dikkat edilmesi gereken bir diğer konu da Java'da çoklu kalıtım yoktur ancak birden fazla interface bir sınıfa implements edilebilir.

No comments:

Post a Comment