logo

Abstrakt metode i Java

I objektorientert programmering er abstraksjon definert som å skjule unødvendige detaljer (implementering) for brukeren og å fokusere på essensielle detaljer (funksjonalitet). Det øker effektiviteten og reduserer dermed kompleksiteten.

sammensatt primærnøkkel

I Java kan abstraksjon oppnås ved hjelp av abstrakte klasser og metoder. I denne opplæringen vil vi lære om abstrakte metoder og bruken av dem i Java.

Abstrakt klasse

En klasse erklæres abstrakt ved å bruke abstrakt søkeord. Den kan ha null eller flere abstrakte og ikke-abstrakte metoder. Vi må utvide den abstrakte klassen og implementere metodene. Det kan ikke instansieres.

Syntaks for abstrakt klasse:

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

Merk: En abstrakt klasse kan inneholde abstrakte metoder eller ikke.

Abstrakt metode

En metode erklært ved hjelp av abstrakt nøkkelord innenfor en abstrakt klasse og ikke har en definisjon (implementering) kalles en abstrakt metode.

Når vi bare trenger metodedeklarasjonen i en superklasse, kan det oppnås ved å erklære metodene som abstrakte.

Abstrakt metode kalles også underklasseansvar siden den ikke har implementeringen i superklassen. Derfor må en underklasse overstyre den for å gi metodedefinisjonen.

Syntaks for abstrakt metode:

 abstract return_type method_name( [ argument-list ] ); 

Her har den abstrakte metoden ikke en metodekropp. Det kan ha null eller flere argumenter.

Poeng å huske

Følgende punkter er de viktige reglene for abstrakt metode i Java:

  • En abstrakt metode har ikke en kropp (implementering), de har bare en metodesignatur (erklæring). Klassen som utvider den abstrakte klassen implementerer de abstrakte metodene.
  • Hvis en ikke-abstrakt (konkret) klasse utvider en abstrakt klasse, må klassen implementere alle de abstrakte metodene til den abstrakte klassen. Hvis ikke, må den konkrete klassen også erklæres som abstrakt.
  • Siden de abstrakte metodene bare har signaturen, må den ha semikolon (;) på slutten.
  • Følgende er forskjellige ulovlige kombinasjoner av andre modifikatorer for metoder mht abstrakt modifikator:
    • endelig
    • abstrakt innfødt
    • abstrakt synkronisert
    • abstrakt statisk
    • abstrakt privat
    • abstrakt strengfp
  • Hvis en klasse inneholder abstrakt metode, må den være abstrakt og omvendt er ikke sant.

Eksempel på abstrakt metode i Java

Eksempel 1:

I følgende eksempel vil vi lære hvordan abstraksjon oppnås ved bruk av abstrakte klasser og abstrakte metoder.

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

Produksjon:

Abstrakt metode i Java

Eksempel 2:

Som standard er alle metodene i et grensesnitt offentlige og abstrakte. Et grensesnitt kan ikke inneholde konkrete metoder, dvs. vanlige metoder med kropp.

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

Produksjon:

Abstrakt metode i Java

På denne måten har vi lært om abstrakt metode og dens implementering i Java.