logo

Абстрактний метод в Java

В об’єктно-орієнтованому програмуванні абстракція визначається як приховування непотрібних деталей (реалізація) від користувача та зосередження на важливих деталях (функціональність). Це підвищує ефективність і тим самим зменшує складність.

У Java абстракція може бути досягнута за допомогою абстрактні класи і методи. У цьому посібнику ми дізнаємося про абстрактні методи та їх використання в Java.

Абстрактний клас

Клас оголошується абстрактним за допомогою анотація ключове слово. Він може мати нуль або більше абстрактних і неабстрактних методів. Нам потрібно розширити абстрактний клас і реалізувати його методи. Його неможливо створити.

Синтаксис для абстрактного класу:

 abstract class class_name { //abstract or non-abstract methods } 

Примітка: абстрактний клас може містити або не містити абстрактні методи.

Метод реферату

Метод, оголошений за допомогою анотація Ключове слово всередині абстрактного класу і не має визначення (реалізації) називається абстрактним методом.

Коли нам потрібна лише декларація методу в суперкласі, це можна досягти, оголосивши методи як абстракти.

Абстрактний метод також називається відповідальністю підкласу, оскільки він не має реалізації в суперкласі. Тому підклас повинен замінити його, щоб забезпечити визначення методу.

логіка передачі реєстру

Синтаксис для абстрактного методу:

 abstract return_type method_name( [ argument-list ] ); 

Тут абстрактний метод не має тіла методу. Він може мати нуль або більше аргументів.

Пункти, які слід пам’ятати

Нижче наведено важливі правила для абстрактного методу в Java:

  • Абстрактний метод не має тіла (реалізації), у нього є лише підпис методу (декларація). Клас, який розширює абстрактний клас, реалізує абстрактні методи.
  • Якщо неабстрактний (конкретний) клас розширює абстрактний клас, тоді клас повинен реалізовувати всі абстрактні методи цього абстрактного класу. Якщо ні, конкретний клас також має бути оголошений як абстрактний.
  • Оскільки абстрактні методи мають лише підпис, він повинен мати крапку з комою (;) у кінці.
  • Нижче наведено різні незаконні комбінації інших модифікаторів для методів щодо анотація модифікатор:
    • остаточний
    • анотація нар
    • анотація синхроніз
    • абстрактна статика
    • реферат приват
    • абстрактний strictfp
  • Якщо клас містить абстрактний метод, він має бути абстрактним, і навпаки, це невірно.

Приклад абстрактного методу в Java

приклад 1:

У наступному прикладі ми дізнаємося, як досягається абстракція за допомогою абстрактних класів і абстрактних методів.

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(); } } 

Вихід:

Абстрактний метод в Java

приклад 2:

За замовчуванням усі методи інтерфейсу є публічними та абстрактними. Інтерфейс не може містити конкретних методів, тобто звичайних методів із тілом.

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)); } } 

Вихід:

Абстрактний метод в Java

Таким чином ми дізналися про абстрактний метод і його реалізацію в Java.