logo

Java'da soyut sınıf

Soyut anahtar kelimeyle bildirilen bir sınıf, soyut sınıf olarak bilinir. Java . Soyut ve soyut olmayan yöntemlere (bedenle yöntem) sahip olabilir.

Java soyut sınıfını öğrenmeden önce Java'daki soyutlamayı anlayalım.

karınca vs maven

Java'da soyutlama

Soyutlama uygulama ayrıntılarının gizlenmesi ve kullanıcıya yalnızca işlevselliğin gösterilmesi işlemidir.

Başka bir şekilde, kullanıcıya yalnızca önemli şeyleri gösterir ve dahili ayrıntıları gizler; örneğin, metni yazıp mesajı gönderdiğiniz SMS gönderme. Mesaj teslimiyle ilgili dahili işlemleri bilmiyorsunuz.

Soyutlama, neyin önemli olduğuna odaklanmanızı sağlar. nesne nasıl yaptığı yerine yapar.

Soyutlamaya ulaşmanın yolları

Java'da soyutlamaya ulaşmanın iki yolu vardır

  1. Soyut sınıf (%0 - 100)
  2. Arayüz (%100)

Java'da soyut sınıf

Soyut olarak bildirilen bir sınıf, bir sınıf olarak bilinir. soyut sınıf . Soyut ve soyut olmayan yöntemlere sahip olabilir. Yaygınlaştırılması ve yönteminin uygulanması gerekiyor. Örneklenemez.

Hatırlanacak noktalar

  • Soyut bir sınıf, soyut bir anahtar kelimeyle bildirilmelidir.
  • Soyut ve soyut olmayan yöntemlere sahip olabilir.
  • Örneklenemez.
  • Sahip olabilir inşaatçılar ve ayrıca statik yöntemler.
  • Alt sınıfı yöntemin gövdesini değiştirmemeye zorlayacak son yöntemlere sahip olabilir.
Java Özet sınıfı için kurallar

Soyut sınıf örneği

 abstract class A{} 

Java'da Soyut Yöntem

Soyut olarak bildirilen ve uygulaması olmayan bir yöntem, soyut yöntem olarak bilinir.

Soyut yöntem örneği

 abstract void printStatus();//no method body and abstract 

Soyut bir yönteme sahip Soyut sınıf örneği

Bu örnekte Bike, yalnızca bir soyut yöntem çalıştırması içeren soyut bir sınıftır. Uygulaması Honda sınıfı tarafından sağlanmaktadır.

 abstract class Bike{ abstract void run(); } class Honda4 extends Bike{ void run(){System.out.println('running safely');} public static void main(String args[]){ Bike obj = new Honda4(); obj.run(); } } 
Şimdi Test Edin
 running safely 

Soyut sınıfın gerçek senaryosunu anlamak

Bu örnekte Shape soyut sınıftır ve uygulanması Rectangle ve Circle sınıfları tarafından sağlanmaktadır.

Çoğunlukla, (son kullanıcıya gizlenen) uygulama sınıfı hakkında bilgimiz yoktur ve uygulama sınıfının bir nesnesi, uygulama sınıfı tarafından sağlanır. fabrika yöntemi .

A fabrika yöntemi sınıfın örneğini döndüren bir yöntemdir. Fabrika yöntemini daha sonra öğreneceğiz.

ekta kapoor oyuncusu

Bu örnekte Rectangle sınıfının örneğini oluşturursanız Rectangle sınıfının Draw() yöntemi çağrılacaktır.

Dosya: TestAbstraction1.java

 abstract class Shape{ abstract void draw(); } //In real scenario, implementation is provided by others i.e. unknown by end user class Rectangle extends Shape{ void draw(){System.out.println('drawing rectangle');} } class Circle1 extends Shape{ void draw(){System.out.println('drawing circle');} } //In real scenario, method is called by programmer or user class TestAbstraction1{ public static void main(String args[]){ Shape s=new Circle1();//In a real scenario, object is provided through method, e.g., getShape() method s.draw(); } } 
Şimdi Test Edin
 drawing circle 

Java'daki Soyut sınıfın başka bir örneği

Dosya: TestBank.java

 abstract class Bank{ abstract int getRateOfInterest(); } class SBI extends Bank{ int getRateOfInterest(){return 7;} } class PNB extends Bank{ int getRateOfInterest(){return 8;} } class TestBank{ public static void main(String args[]){ Bank b; b=new SBI(); System.out.println('Rate of Interest is: '+b.getRateOfInterest()+' %'); b=new PNB(); System.out.println('Rate of Interest is: '+b.getRateOfInterest()+' %'); }} 
Şimdi Test Edin
 Rate of Interest is: 7 % Rate of Interest is: 8 % 

Yapıcı, veri üyesi ve yöntemlere sahip soyut sınıf

Soyut bir sınıfta bir veri üyesi, soyut yöntem, yöntem gövdesi (soyut olmayan yöntem), yapıcı ve hatta main() yöntemi bulunabilir.

Dosya: TestAbstraction2.java

 //Example of an abstract class that has abstract and non-abstract methods abstract class Bike{ Bike(){System.out.println('bike is created');} abstract void run(); void changeGear(){System.out.println('gear changed');} } //Creating a Child class which inherits Abstract class class Honda extends Bike{ void run(){System.out.println('running safely..');} } //Creating a Test class which calls abstract and non-abstract methods class TestAbstraction2{ public static void main(String args[]){ Bike obj = new Honda(); obj.run(); obj.changeGear(); } } 
Şimdi Test Edin
 bike is created running safely.. gear changed 

Kural: Bir sınıfta soyut bir yöntem varsa o sınıfın soyut olması gerekir.

 class Bike12{ abstract void run(); } 
Şimdi Test Edin
 compile time error 

Kural: Soyut bir metodu olan soyut bir sınıfı genişletiyorsanız, ya yöntemin uygulamasını sağlamalısınız ya da bu sınıfı soyut yapmalısınız.


Soyut sınıfın bir başka gerçek senaryosu

Soyut sınıf aynı zamanda bazı uygulamaların uygulanmasını sağlamak için de kullanılabilir. arayüz . Böyle bir durumda son kullanıcı, arayüzün tüm yöntemlerini geçersiz kılmak zorunda kalmayabilir.

Not: Java'ya yeni başlıyorsanız, önce arayüzü öğrenin ve bu örneği atlayın.

 interface A{ void a(); void b(); void c(); void d(); } abstract class B implements A{ public void c(){System.out.println('I am c');} } class M extends B{ public void a(){System.out.println('I am a');} public void b(){System.out.println('I am b');} public void d(){System.out.println('I am d');} } class Test5{ public static void main(String args[]){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} 
Şimdi Test Edin
 Output:I am a I am b I am c I am d