logo

Abstraktní metoda v Javě

V objektově orientovaném programování je abstrakce definována jako skrytí nepotřebných detailů (implementace) před uživatelem a soustředění se na podstatné detaily (funkčnost). Zvyšuje účinnost a tím snižuje složitost.

V Javě lze abstrakce dosáhnout pomocí abstraktní třídy a metody. V tomto tutoriálu se seznámíme s abstraktními metodami a jejich použitím v Javě.

Abstraktní třída

Třída je deklarována jako abstraktní pomocí abstraktní klíčové slovo. Může mít nula nebo více abstraktních a neabstraktních metod. Potřebujeme rozšířit abstraktní třídu a implementovat její metody. Nelze vytvořit instanci.

java řetězec obsahuje

Syntaxe abstraktní třídy:

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

Poznámka: Abstraktní třída může nebo nemusí obsahovat abstraktní metody.

Abstraktní metoda

Metoda deklarovaná pomocí abstraktní klíčové slovo v rámci abstraktní třídy a nemá definici (implementaci) se nazývá abstraktní metoda.

Když potřebujeme pouze deklaraci metody v supertřídě, lze toho dosáhnout deklarováním metod jako abstraktů.

Abstraktní metoda se také nazývá odpovědnost podtřídy, protože nemá implementaci v supertřídě. Proto ji musí podtřída přepsat, aby poskytla definici metody.

Syntaxe abstraktní metody:

 abstract return_type method_name( [ argument-list ] ); 

Zde abstraktní metoda nemá tělo metody. Může mít nula nebo více argumentů.

Body k zapamatování

Následující body jsou důležitá pravidla pro abstraktní metodu v Javě:

  • Abstraktní metoda nemá tělo (implementaci), má pouze podpis metody (deklaraci). Třída, která rozšiřuje abstraktní třídu, implementuje abstraktní metody.
  • Pokud neabstraktní (konkrétní) třída rozšiřuje abstraktní třídu, pak tato třída musí implementovat všechny abstraktní metody této abstraktní třídy. Pokud ne, konkrétní třída musí být také deklarována jako abstraktní.
  • Protože abstraktní metody mají pouze podpis, musí mít na konci středník (;).
  • Následující jsou různé nedovolené kombinace dalších modifikátorů pro metody s ohledem na abstraktní modifikátor:
    • finále
    • abstraktní domorodec
    • abstraktní synchronizované
    • abstraktní statické
    • abstraktní soukromé
    • abstraktní strictfp
  • Pokud třída obsahuje abstraktní metodu, musí být abstraktní a naopak to neplatí.

Příklad abstraktní metody v Javě

Příklad 1:

V následujícím příkladu se naučíme, jak je dosaženo abstrakce pomocí abstraktních tříd a abstraktních metod.

AbstractMethodEx1.java

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

Výstup:

Abstraktní metoda v Javě

Příklad 2:

Ve výchozím nastavení jsou všechny metody rozhraní veřejné a abstraktní. Rozhraní nemůže obsahovat konkrétní metody, tj. běžné metody s tělem.

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

Výstup:

Abstraktní metoda v Javě

Tímto způsobem jsme se dozvěděli o abstraktní metodě a její implementaci v Javě.

jak přenést řetězec do int v javě