Skip to main content

Abstract Class Nedir ? Soyut Sınıf Kavramı

Abstract class Türkçe anlamı ile soyut sınıf Java’da bazen üst sınıfın ve üst sınıfta bulunan metotların direkt olarak kullanılmasını istemeyiz.Yani üst sınıfı extend eden alt sınıfların üst sınıfta bulanan özelliği kendisine göre şekillendirmesi gerekebilir.Bu gibi durumlarda soyut sınıflar devreye girer.Soyut sınıflar tanımlanırken sınıf tanımlamasının önüne abstract anahtar kelimesi eklenir.Örnek olarak kodla açıklayacak olursak ;

package ornek;
public abstract class Hayvan {
    String ad;
    int populasyon;
    public abstract void HareketEt();
}

Yukarıda basit bir abstract Hayvan sınıfı tanımladık.Görüldüğü gibi bu sınıf bir adet soyut metoda sahip.Abstract metotlar tanımlanırken gövdesiz olarak tanımlanırlar.Hayvan sınıfını extend edecek tüm sınıflar bu HareketEt() metodunu override ederek(ezerek) içini doldurmak zorunda kalacak.Eğer bir sınıfta soyut bir metot tanımlanmak isteniyorsa , sınıfında tanımlanması abstract olmalıdır.(Abstract metodun oluşturulduğu sınıftan bahsediyoruz , extend eden alt sınıflar soyut yapıda olmak zorunda değil)

Yukarıdaki tanımlanan abstract Hayvan sınıfından doğrudan nesne üretemeyiz.

Hayvan hayvan=new Hayvan(); //HATALI KULLANIM

Fakat abstract sınıflarda normal java sınıfları gibi extend edilebilir.Extend eden alt sınıflardan new anahtar kelimesi ile yeni nesneler türetilebilir.Hemen bir örnek ile açıklayalım ;

package ornek;

public class Puma extends Hayvan{

    @Override
    public void HareketEt() {
        System.out.println("Puma çok hızlı bir hayvandır");
    }
    
}

Yukarıdaki gibi tanımlanmış Puma sınıfı görüldüğü gibi HareketEt() metodunu override etti.Eğer override etmeseydik “Puma is not abstract and does not override abstract method hareketEt in Hayvan” hatasını alacaktık

Kodun üzerinde bulunan @Override kelimesinin yazılması zorunlu değil ancak kod okunurluğu açısından yazılmasında fayda var.

Puma puma=new Puma(); // Doğru kullanım

Puma sınıfı abstract bir sınıf extend etse de kendisi abstract bir sınıf olmadığı için new anahtar kelimesi ile yeni nesneler türetebiliyoruz.

Bu yazımızda soyut sınıfları örnekler vererek açıklamaya çalıştık.Oracle’da bulunan abstract metot ve classlar ile ilgili yazıyı okuyarak daha detaylı bilgiye ulaşabilirsiniz.Sitemizde bulanan diğer java yazılarımızı okuyabilir , herhangi bir programlama sorularınızu şu adresten sorabilirsiniz.

Mert İnal

Programlamayı ve teknoloji seviyorum.Kocaeli Üniversitesi Bilgisayar Mühendisliği 3.sınıf öğrencisiyim.Bu siteyi programlama konusunda Türkçe içerik biriktirmek ve eksik olduğum konuları yazarak öğrenmek üzerine kurduk.Kodlar.Net ekibi zengin içerikler ile bir programlama arşivi biriktirmeyi hedefler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir