Nesne yönelimli programlamada soyutlama, gereksiz ayrıntıların (uygulama) kullanıcıdan gizlenmesi ve temel ayrıntılara (işlevsellik) odaklanılması olarak tanımlanmaktadır. Verimliliği arttırır ve böylece karmaşıklığı azaltır.
Java'da soyutlama kullanılarak gerçekleştirilebilir soyut sınıflar ve yöntemler. Bu derste soyut yöntemleri ve bunların Java'daki kullanımını öğreneceğiz.
Soyut sınıf
Bir sınıf, kullanılarak soyut olarak bildirilir. soyut anahtar kelime. Sıfır veya daha fazla soyut ve soyut olmayan yönteme sahip olabilir. Soyut sınıfı genişletmemiz ve yöntemlerini uygulamamız gerekiyor. Örneklenemez.
Soyut sınıf için sözdizimi:
abstract class class_name { //abstract or non-abstract methods }
Not: Soyut bir sınıf, soyut yöntemler içerebilir veya içermeyebilir.
Soyut Yöntem
kullanılarak bildirilen bir yöntem soyut Soyut bir sınıf içerisinde yer alan ve bir tanımı (uygulaması) olmayan anahtar kelimeye soyut yöntem denir.
Bir süper sınıfta sadece yöntem bildirimine ihtiyacımız olduğunda, yöntemlerin özet olarak bildirilmesiyle bunu başarabiliriz.
Soyut yöntem, süper sınıfta uygulamaya sahip olmadığından alt sınıf sorumluluğu olarak da adlandırılır. Bu nedenle, yöntem tanımını sağlamak için bir alt sınıfın onu geçersiz kılması gerekir.
1 milyonun 10'u nedir
Soyut yöntemin sözdizimi:
abstract return_type method_name( [ argument-list ] );
Burada soyut yöntemin bir yöntem gövdesi yoktur. Sıfır veya daha fazla argümana sahip olabilir.
Hatırlanacak noktalar
Aşağıdaki noktalar Java'da soyut yöntem için önemli kurallardır:
- Soyut bir yöntemin bir gövdesi (uygulaması) yoktur, yalnızca bir yöntem imzası (bildirimi) vardır. Soyut sınıfı genişleten sınıf, soyut yöntemleri uygular.
- Soyut olmayan (somut) bir sınıf soyut bir sınıfı genişletiyorsa, sınıf o soyut sınıfın tüm soyut yöntemlerini uygulamalıdır. Değilse, somut sınıfın da soyut olarak bildirilmesi gerekir.
- Soyut yöntemlerde sadece imza bulunduğundan sonuna noktalı virgül (;) konulması gerekir.
- Aşağıda çeşitli yasa dışı kombinasyonlar yöntemlere ilişkin diğer değiştiricilerin soyut değiştirici:
- son
- soyut yerli
- soyut senkronize
- soyut statik
- soyut özel
- soyut katı fp
- Bir sınıf soyut yöntem içeriyorsa soyut olması gerekir ve bunun tersi de doğru değildir.
Java'da Soyut Yöntem Örneği
Örnek 1:
Aşağıdaki örnekte soyut sınıflar ve soyut yöntemler kullanılarak soyutlamanın nasıl elde edildiğini öğreneceğiz.
AbstractMethodEx1.java
// abstract class abstract class Multiply { // abstract methods // sub class must implement these methods public abstract int MultiplyTwo (int n1, int n2); public abstract int MultiplyThree (int n1, int n2, int n3); // regular method with body public void show() { System.out.println ('Method of abstract class Multiply'); } } // Regular class extends abstract class class AbstractMethodEx1 extends Multiply { // if the abstract methods are not implemented, compiler will give an error public int MultiplyTwo (int num1, int num2) { return num1 * num2; } public int MultiplyThree (int num1, int num2, int num3) { return num1 * num2 * num3; } // main method public static void main (String args[]) { Multiply obj = new AbstractMethodEx1(); System.out.println ('Multiplication of 2 numbers: ' + obj.MultiplyTwo (10, 50)); System.out.println ('Multiplication of 3 numbers: ' + obj.MultiplyThree (5, 8, 10)); obj.show(); } }
Çıktı:
Örnek 2:
Varsayılan olarak bir arayüzün tüm yöntemleri genel ve soyuttur. Bir arayüz somut yöntemler, yani gövdeli normal yöntemler içeremez.
AbstractMethodEx2.java
// interface interface SquareCube { // abstract methods public abstract int squareNum (int n); // it not necessary to add public and abstract keywords // as the methods in interface are public abstract by default int cubeNum (int n); // regular methods are not allowed in an interface // if we uncomment this method, compiler will give an error /*public void disp() { System.out.println ('I will give error if u uncomment me'); } */ } public class AbstractMethodEx2 implements SquareCube { // defining the abstract methods of interface public int squareNum (int num) { return num * num; } public int cubeNum (int num) { return num * num * num; } // main method public static void main(String args[]){ SquareCube obj = new AbstractMethodEx2(); System.out.println('Square of number is: ' + obj.squareNum (7) ); System.out.println('Cube of number is: ' + obj.cubeNum (7)); } }
Çıktı:
Bu şekilde soyut yöntemi ve Java'daki uygulamasını öğrendik.