logo

Abstraktus metodas Java

Objektiniame programavime abstrakcija apibrėžiama kaip nereikalingų detalių (įgyvendinimo) slėpimas nuo vartotojo ir sutelkimas į esmines detales (funkcionalumas). Tai padidina efektyvumą ir taip sumažina sudėtingumą.

Java programoje abstrakciją galima pasiekti naudojant abstrakčios klasės ir metodai. Šioje pamokoje sužinosime apie abstrakčius metodus ir jų naudojimą Java.

Abstrakti klasė

Klasė paskelbiama abstrakčia naudojant abstrakčiai raktažodį. Jame gali būti nulis arba daugiau abstrakčių ir neabstrakčių metodų. Turime išplėsti abstrakčiąją klasę ir įdiegti jos metodus. Jo negalima kartoti.

skaidydami eilutę c++

Abstrakčios klasės sintaksė:

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

Pastaba: abstrakčioje klasėje gali būti arba nebūti abstrakčių metodų.

Abstraktus metodas

Metodas, deklaruotas naudojant abstrakčiai abstrakčioje klasėje esantis raktinis žodis ir neturi apibrėžimo (įgyvendinimas), vadinamas abstrakčiuoju metodu.

Kai mums reikia tik metodo deklaracijos super klasėje, tai galima pasiekti deklaruojant metodus kaip abstrakčius.

Abstraktus metodas taip pat vadinamas poklasio atsakomybe, nes jis nėra įdiegtas super klasėje. Todėl poklasis turi jį nepaisyti, kad pateiktų metodo apibrėžimą.

Abstrakčiojo metodo sintaksė:

 abstract return_type method_name( [ argument-list ] ); 

Čia abstraktus metodas neturi metodo korpuso. Jame gali būti nulis arba daugiau argumentų.

Taškai, kuriuos reikia prisiminti

Toliau pateikiamos svarbios abstrakčiojo metodo taisyklės Java:

  • Abstraktūs metodai neturi pagrindo (įgyvendinimo), jie turi tik metodo parašą (deklaraciją). Klasė, kuri išplečia abstrakčiąją klasę, įgyvendina abstrakčius metodus.
  • Jei neabstrakčioji (konkreti) klasė išplečia abstrakčią klasę, tada klasė turi įgyvendinti visus tos abstrakčios klasės abstrakčiuosius metodus. Jei ne, konkreti klasė taip pat turi būti paskelbta kaip abstrakti.
  • Kadangi abstraktūs metodai turi tik parašą, jo pabaigoje turi būti kabliataškis (;).
  • Toliau pateikiami įvairūs nelegalios kombinacijos kitų metodų modifikatorių, susijusių su abstrakčiai modifikatorius:
    • galutinis
    • abstraktus gimtoji
    • abstrakčiai sinchronizuoti
    • abstrakti statika
    • abstraktus privatus
    • abstraktus strictfp
  • Jei klasėje yra abstraktus metodas, jis turi būti abstraktus ir atvirkščiai – netiesa.

Abstraktaus metodo pavyzdys Java

1 pavyzdys:

Toliau pateiktame pavyzdyje sužinosime, kaip abstrakcija pasiekiama naudojant abstrakčias klases ir abstrakčius metodus.

AbstractMethodEx1.java

kaip sužinoti ekrano dydį
 // 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(); } } 

Išvestis:

Abstraktus metodas Java

2 pavyzdys:

Pagal numatytuosius nustatymus visi sąsajos metodai yra vieši ir abstraktūs. Sąsaja negali apimti konkrečių metodų, t. y. įprastų metodų su korpusu.

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

Išvestis:

Abstraktus metodas Java

Tokiu būdu mes sužinojome apie abstraktų metodą ir jo įgyvendinimą Java.

paveldėjimas c++