Java Soyut Sınıfı ve Yöntemi (Örneklerle)

Bu eğitimde, örnekler yardımıyla Java soyut sınıfları ve yöntemleri hakkında bilgi edineceğiz. Java'da soyutlamayı da öğreneceğiz.

Java Özet Sınıfı

Java'daki soyut sınıfın somutlaştırılması mümkün değildir (soyut sınıfların nesnelerini yaratamayız). abstractSoyut bir sınıf bildirmek için anahtar kelimeyi kullanırız. Örneğin,

 // create an abstract class abstract class Language ( // fields and methods )… // try to create an object Language // throws an error Language obj = new Language(); 

Soyut bir sınıf, hem normal yöntemlere hem de soyut yöntemlere sahip olabilir. Örneğin,

 abstract class Language ( // abstract method abstract void method1(); // regular method void method2() ( System.out.println("This is regular method"); ) )

Soyut olmayan yöntemler hakkında bilgi edinmek için Java yöntemlerini ziyaret edin. Burada soyut yöntemler hakkında bilgi edineceğiz.

Java Özet Yöntemi

Vücudu olmayan bir yöntem, soyut bir yöntem olarak bilinir. abstractSoyut yöntemler oluşturmak için aynı anahtar kelimeyi kullanıyoruz . Örneğin,

 abstract void display();

İşte display()soyut bir yöntem. Öğesinin gövdesi display()ile değiştirilir ;.

Bir sınıf soyut bir yöntem içeriyorsa, sınıfın soyut olarak bildirilmesi gerekir. Aksi takdirde, bir hata oluşturacaktır. Örneğin,

 // error // class should be abstract class Language ( // abstract method abstract void method1(); )

Örnek: Java Soyut Sınıfı ve Yöntemi

Soyut sınıflar somutlaştırılamasa da ondan alt sınıflar oluşturabiliriz. Ardından, alt sınıfın nesnesini kullanarak soyut sınıfın üyelerine erişebiliriz. Örneğin,

 abstract class Language ( // method of abstract class public void display() ( System.out.println("This is Java Programming"); ) ) class Main extends Language ( public static void main(String() args) ( // create an object of Main Main obj = new Main(); // access method of abstract class // using object of Main class obj.display(); ) )

Çıktı

 Bu Java programlama

Yukarıdaki örnekte, Language adında bir soyut sınıf oluşturduk. Sınıf, normal bir yöntem içerir display().

Soyut sınıfı miras alan Main sınıfını yarattık. İfadeye dikkat edin,

 obj.display();

Burada obj, Main alt sınıfının nesnesidir. Obj nesnesini kullanarak abstract sınıfının yöntemini çağırıyoruz.

Soyut Yöntemlerin Uygulanması

Soyut sınıf herhangi bir soyut yöntemi içeriyorsa, soyut üst sınıftan miras alınan tüm alt sınıflar, soyut yöntemin uygulanmasını sağlamalıdır. Örneğin,

 abstract class Animal ( abstract void makeSound(); public void eat() ( System.out.println("I can eat."); ) ) class Dog extends Animal ( // provide implementation of abstract method public void makeSound() ( System.out.println("Bark bark"); ) ) class Main ( public static void main(String() args) ( // create an object of Dog class Dog d1 = new Dog(); d1.makeSound(); d1.eat(); ) )

Çıktı

 Kabuk kabuğu yiyebilirim.

Yukarıdaki örnekte, soyut bir Animal sınıfı oluşturduk. Sınıf, soyut bir yöntem makeSound()ve soyut olmayan bir yöntem içerir eat().

Üst sınıf Animal'den bir alt sınıf Köpeği miras aldık. Burada alt sınıf Dog, soyut yöntemin uygulanmasını sağlar makeSound().

Daha sonra Dog sınıfının d1 nesnesini metodları makeSound()ve eat().

Not : Dog sınıfı soyut yöntemin uygulanmasını sağlamıyorsa makeSound(), Dog da soyut olarak bildirilmelidir. Bunun nedeni, alt sınıf Köpeğin Animal'den miras almasıdır makeSound().

Soyut Sınıfların Oluşturucusuna Erişir

Soyut bir sınıf, normal sınıf gibi kuruculara sahip olabilir. Ve soyut bir sınıfın yapıcısına alt sınıftan superanahtar kelimeyi kullanarak erişebiliriz . Örneğin,

 abstract class Animal ( Animal() (… . ) ) class Dog extends Animal ( Dog() ( super();… ) )

Burada, super()Hayvanın yapıcısına erişmek için Dog'un yapıcısının içini kullandık .

superHer zaman alt sınıf yapıcısının ilk ifadesi olması gerektiğini unutmayın . Daha fazla bilgi edinmek için Java süper anahtar kelimesini ziyaret edin.

Java Soyutlaması

Soyut sınıfların ve yöntemlerin başlıca kullanımı, Java'da soyutlama sağlamaktır.

Soyutlama, gereksiz ayrıntıları gizlememize ve yalnızca gerekli bilgileri göstermemize olanak tanıyan önemli bir nesne yönelimli programlama kavramıdır.

Bu, ayrıntıları atlayarak veya daha basit, daha üst düzey bir fikirle gizleyerek karmaşıklığı yönetmemize olanak tanır.

Pratik bir soyutlama örneği motosiklet frenleri olabilir. Frenin ne yaptığını biliyoruz. Frene bastığımızda motosiklet duracak. Ancak frenin çalışması bizden gizli tutulur.

Frenin çalışmasını gizlemenin en büyük avantajı, üreticinin artık farklı motosikletler için freni farklı şekilde uygulayabilmesidir, ancak, frenin yaptığı şey aynı olacaktır.

Java soyutlamasını daha iyi anlamamıza yardımcı olan bir örnek alalım.

Örnek 3: Java Soyutlaması

 abstract class Animal ( abstract void makeSound(); ) class Dog extends Animal ( // implementation of abstract method public void makeSound() ( System.out.println("Bark bark."); ) ) class Cat extends Animal ( // implementation of abstract method public void makeSound() ( System.out.println("Meows "); ) ) class Main ( public static void main(String() args) ( Dog d1 = new Dog(); d1.makeSound(); Cat c1 = new Cat(); c1.makeSound(); ) )

Çıktı :

 Kabuk kabuğu Miyavlar

In the above example, we have created a superclass Animal. The superclass Animal has an abstract method makeSound().

The makeSound() method cannot be implemented inside Animal. It is because every animal makes different sounds. So, all the subclasses of Animal would have different implementation of makeSound().

So, the implementation of makeSound() in Animal is kept hidden.

Here, Dog makes its own implementation of makeSound() and Cat makes its own implementation of makeSound().

Note: We can also use interfaces to achieve abstraction in Java. To learn more, visit Java Interface.

Key Points to Remember

  • We use the abstract keyword to create abstract classes and methods.
  • An abstract method doesn't have any implementation (method body).
  • Soyut yöntemler içeren bir sınıf da soyut olmalıdır.
  • Soyut bir sınıfın nesnelerini yaratamayız.
  • Soyut bir sınıfın özelliklerini uygulamak için, alt sınıfları ondan miras alır ve alt sınıfın nesnelerini oluştururuz.
  • Bir alt sınıf, soyut bir sınıfın tüm soyut yöntemlerini geçersiz kılmalıdır. Bununla birlikte, alt sınıfın soyut olarak bildirilmesi durumunda, soyut yöntemleri geçersiz kılmak zorunlu değildir.
  • Soyut sınıfın referansını kullanarak soyut bir sınıfın statik niteliklerine ve yöntemlerine erişebiliriz. Örneğin,
     Animal.staticMethod();

Ilginç makaleler...