Abstract (Soyut) Class
Daha önce interface kavramını incelemiştik ve bir interface içerisinde sadece gövdesiz metotlar tanımlayabilmiştik. Yani bir metodun gerçekleştirebileceği işlemleri yazamamıştık. Abstract sınıflarda ise hem gövdesiz metotlarımızı hem de gövdeli metotlarımızı yazabiliyoruz. Eğer metodun kullanımı her sınıf içerisinde aynı sonucu verecekse gövdeli metot ile tanımlıyoruz. Eğer her sınıf için farklı bir sonuç verecekse abstract bir gövdesiz metot tanımlıyoruz.
- abstract anahtar kelimesi ile tanımlanırlar.
- Abstract bir sınıfdan nesne oluşturulamaz.
- Abstract bir sınıfı kullanmak için inherit (miras) etmeniz gerekmektedir.
- Abstract method içeren bir sınıf abstract olarak tanımlanmalıdır.
Örneğin ;
AbstractClass adında bir abstract sınıf oluşturduk. KullanıcıOluştur ve KullanıcıSil adındaki metotar her kullanımda aynı sonucu vereceği için metottlarımızı direkt olarak yazdık. Fakat guncelle metodunun kullanımı farklı sonuçlar vermesini istediğimizden gövdesiz olarak tanımladık. Bu sınıfı extend ettiğimiz sınıf içerisinde tekrar tanımlayacağız.
Kullanıcı1 sınıfına AbstractClass sınıfını extend ettiğimiz zaman netbeans guncelle metodu override edilmediği için uyardı. Diğer 2 metodu override etmiyoruz.
Daha sonra Kullanıcı1 sınıfı için guncelle metodunu override ettik. Kullanıcı2 sınıfını oluşturduk ve aynı işlemi onun için de gerçekleştirdik.
Sonuç olarak elimizde her sınıf için ortak KullanıcıOluştur ve KullanıcıSil metodu ve sınıfların kendine özel sonuç veren guncelle metodlarımız oldu.
MainClass içerisinde 2 adet nesne oluşturduk ve metotlarımızı kullandık. Çıktıda da görüldüğü gibi hangi nesne ile kullanırsak kullanalım KullanıcıOluştur ve KullanıcıSil metotları aynı sonucu verdi. Guncelle metodu ise her nesne için ayrı çıktı verdi.
Gördüğünüz hatalar, önerileriniz ve sorularınız için telegram gruplarımızdan bizimle iletişime geçebilirsiniz.
Devamı için takipte kalınız.