Java SE Ders26 - Abstract (Soyut) Kavramı


   Alt sınıfları için  zorunlu override şartı getiren sınıflara abstract (soyut) sınıf denir.
Abstract (soyut) sınıfın özellikleri aşağıda listelenmiştir.
  • Abstract (soyut) sınıf en az bir tane abstract (soyut) metot yani sadece signature'ü (imza) bulunan metot bulundurur.
  • Abstract (soyut) sınıfın nesnesi oluşturulamaz.
  • Abstract (soyut) sınıftan türetilen sınıfta  üst sınıfın abstract metodu override edilmelidir.Aksi halde o da abstract sınıf olmuş olur ve nesnesi oluşturulamaz.
  • Abstract (soyut) sınıfta tanımlanmayan abstract (soyut) metot, alt sınıflarda tanımlanması zorunlu kılarak polimorfizme (polymorphism) katkı sağlar.
  • Bir sınıf veya bir metot abstract anahtar kelimesi ile abstract (soyut) yapılır.abstract anahtar kelimesi erişim belirtecinden hemen sonra koyulur.
  Polimorfizm (polymorphism) konusunda yapılan örneği bu konuya uyarlayalım.

Main.java
package test;

public class Main {

 public static void main(String[] args) {

  Sekil s1 = new Kare(4);
  Sekil s2 = new Ucgen(2, 11);

  System.out.println("Kare alan\t: " + s1.alanHesapla());
  System.out.println("Ucgen alan\t: " + s2.alanHesapla());

 }

}

Sekil.java
package test;

public abstract class Sekil {
 
 public abstract int alanHesapla();
}

Kare.java
package test;

public class Kare extends Sekil {
 private int kenar;

 public Kare() {
 }

 public Kare(int kenar) {
  this.kenar = kenar;
 }
 
 @Override
 public int alanHesapla(){
  return kenar*kenar;
 }

 public int getKenar() {
  return kenar;
 }

 public void setKenar(int kenar) {
  this.kenar = kenar;
 }

}

Ucgen.java
package test;

public class Ucgen extends Sekil {
 private int taban, yukseklik;

 public Ucgen() {
 }

 public Ucgen(int taban, int yukseklik) {
  this.taban = taban;
  this.yukseklik = yukseklik;
 }

 @Override
 public int alanHesapla() {
  return (taban * yukseklik) / 2;
 }

 public int getTaban() {
  return taban;
 }

 public void setTaban(int taban) {
  this.taban = taban;
 }

 public int getYukseklik() {
  return yukseklik;
 }

 public void setYukseklik(int yukseklik) {
  this.yukseklik = yukseklik;
 }
 
}

Abstract (Soyut)

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)