Sponsor Reklam 


20.09.2008 (20:46)

 abstract Anahtar Sözcüğü, Keyword 
abstract kelimesi özet anlamındadır. Sınıflar veya metotlar abstract olarak tanımlanabilir.

Arabirimlerde yer alan metotlar abstract olarak yazılmasa da otomatik olarak abstract özelliktedir.

Bir sınıf bir arabirimi uyguluyor fakat onun metotlarını uygulamama durumu var ise abstract olarak tanımlanmalıdır. abstract sınıfların örnekleri-nesneleri (instance) üretilemez. Bu nedenle bu sınıf genişletilebilir ve alt sınıfı abstract sınıf değilse nesnesi üretilebilir. Unutulmamalıdır ki abstract olmayan alt sınıf, üst sınıfın uyguladığı arabirimin metotlarından üst sınıfın uygulamadıklarını içeriyor olmalıdır. Eğer alt sınıf da uygulamayacaksa o da abstract olarak deklare edilmelidir. Böyle durumda yine aynı sebeple bu sınıfın da nesnesi üretilemeyecektir.

Genişletilen bir sınıf bazı metotlarının tüm alt sınıflarında da tanımlanmış olmasını zorunlu kılmak isteyebilir. Böyle bir durumda da tanımlanmasını istediği metotları abstract olarak belirtir.

public abstract class A {

  // Constructor
  A() { }

  protected void metot1() {
    // işlemler
  }

  protected void metot2() {
    // işlemler
  }

  protected abstract void metot3();
  protected abstract void metot4();

}

Örnekte bir abstract sınıf yer alıyor ve ona ait 4 metottan 2'si abstract olarak belirtilmiş. Bu sınıf abstract metotlar içerdiği için abstract olarak tanımlanmak zorunda. Bu sınıf abstract olduğu için sınıfın (new operatörü ile) bir nesnesi üretilemez. Bu sınıfı genişleten (extends) sınıflar abstract değillerse onların nesneleri üretilebilir. Fakat bu alt sınıflar metot3 ve metot4 isimli metotları tanımlamak zorundadır.

Görüldüğü gibi abstract yapı özet oluşturmada veya bazı kuralların yerine getirilmesi konusunda önemli bir yere sahiptir. Arabirimlerin yani polimorfik (çok biçimli) yapının temelini oluşturur.
Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter