I objektorienterad programmering definieras abstraktion som att dölja onödiga detaljer (implementering) för användaren och att fokusera på väsentliga detaljer (funktionalitet). Det ökar effektiviteten och minskar därmed komplexiteten.
I Java kan abstraktion uppnås med hjälp av abstrakta klasser och metoder. I den här handledningen kommer vi att lära oss om abstrakta metoder och dess användning i Java.
Abstrakt klass
En klass förklaras abstrakt med hjälp av abstrakt nyckelord. Det kan ha noll eller fler abstrakta och icke-abstrakta metoder. Vi måste utöka den abstrakta klassen och implementera dess metoder. Det går inte att instansiera.
np.medelvärde
Syntax för abstrakt klass:
abstract class class_name { //abstract or non-abstract methods }
Obs: En abstrakt klass kan innehålla abstrakta metoder eller inte.
Abstrakt metod
En metod som deklareras med hjälp av abstrakt nyckelord inom en abstrakt klass och inte har en definition (implementation) kallas en abstrakt metod.
När vi bara behöver metoddeklarationen i en superklass kan det uppnås genom att deklarera metoderna som abstrakt.
Abstrakt metod kallas också underklassansvar eftersom den inte har implementeringen i superklassen. Därför måste en underklass åsidosätta den för att tillhandahålla metoddefinitionen.
Syntax för abstrakt metod:
abstract return_type method_name( [ argument-list ] );
Här har den abstrakta metoden ingen metodkropp. Det kan ha noll eller fler argument.
Punkter att komma ihåg
Följande punkter är de viktiga reglerna för abstrakt metod i Java:
- En abstrakt metod har ingen kropp (implementering), de har bara en metodsignatur (deklaration). Klassen som utökar den abstrakta klassen implementerar de abstrakta metoderna.
- Om en icke-abstrakt (konkret) klass utökar en abstrakt klass, måste klassen implementera alla abstrakta metoder för den abstrakta klassen. Om inte måste den konkreta klassen också deklareras som abstrakt.
- Eftersom de abstrakta metoderna bara har signaturen måste den ha semikolon (;) i slutet.
- Följande är olika olagliga kombinationer av andra modifierare för metoder med avseende på abstrakt modifierare:
- slutlig
- abstrakt infödd
- abstrakt synkroniserat
- abstrakt statisk
- abstrakt privat
- abstrakt striktfp
- Om en klass innehåller abstrakt metod måste den vara abstrakt och vice versa är inte sant.
Exempel på abstrakt metod i Java
Exempel 1:
I följande exempel kommer vi att lära oss hur abstraktion uppnås med hjälp av abstrakta klasser och abstrakta metoder.
AbstractMethodEx1.java
sortera arraylistan i 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(); } }
Produktion:
Exempel 2:
Som standard är alla metoder för ett gränssnitt offentliga och abstrakta. Ett gränssnitt kan inte innehålla konkreta metoder, dvs vanliga 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)); } }
Produktion:
På detta sätt har vi lärt oss om abstrakt metod och dess implementering i Java.
java bool till sträng