Soyut sınıf

Soyut sınıf (İng. abstract class), nesne yönelimli programlamada nesnesi yaratılamayan sınıflara denir. Nesne yaratılamamasının nedeni, sınıfın kullanıcı arayüzünde yer alan bir veya daha çok sayıdaki iletinin gerçekleştirilmemesidir.

Örnekler

Örnek olarak Hayvan"Hayvan" sınıfı soyut bir sınıf olarak düşünülebilir. Çünkü hayvan kavramı, ancak bir ide olup bir soyutlamadır. Cinsi belli olmayan bir hayvanın nasıl ses çıkartacağı bilinemediği için hayvanların ortak olarak paylaştıkları davranışlar soyut "Hayvan" sınıfında soyut metotlarla tanımlanır.

Java

/**
 * Abstract class for animals
 */
public abstract class Animal {
    
    /**
     * The method that let's the animal make the sound
     * @return The sound
     */
    abstract public String makeASound();

}

/**
 * Class for all cats
 */
public abstract class Cat extends Animal {

    /* (non-Javadoc)
     * @see Animal#makeASound()
     */
    @Override
    public String makeASound() {
        return "Miyaaav!";
    }
}

/**
 * Class for all dogs
 */
public class Dog extends Animal {
    /* (non-Javadoc)
     * @see Animal#makeASound()
     */
    @Override
    public String makeASound() {
        return "Hav hav!";
    }
}

/**
 * Turkish Van cat
 */
public class TurkishVan extends Cat {
}

/**
 * Test class
 */
public class AnimalsTest {

    /**
	 * Test method for animals
     * @param args
     */
    public static void main(String[] args) {
        Animal vanKedisi = new TurkishVan();
        Animal karabas = new Dog();
        
        System.out.print("Karabas " + karabas.makeASound() + " dedi.\n");
        System.out.print("Mirnav " + vanKedisi.makeASound() + " dedi.");
    }
}

Program koşturulduğunda ses çıkaran makeASound() metodu her hayvan için ayrı ses çıkartamaktadır:

Karabas Hav hav! dedi.
Mirnav Miyaaav! dedi.

Kaynakça

    Ayrıca bakınız

    This article is issued from Vikipedi - version of the 7/9/2013. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.