Java >> Java tutorial >  >> Java

Abstraktion i java eksempel | RealTime achive program

Abstraktion er en af ​​hovedfunktionerne ved Objektorienteret programmering . Abstraktion i Java bruges til kun at vise væsentlige detaljer til brugeren. Menas skjuler en unødvendig intern funktionalitet hos brugerne.

For eksempel viser smarte mobilapplikationer kun brugerapplikationer og nyttige funktioner som i YouTube, se videoer. Youtube viser ikke at bruge, hvordan internt det er forbundet til serveren, downloader videoer og koder. Brugere kan kun interagere med applikationens brugergrænseflade.

Definition:- Abstraktion er en proces med applikationsudvikling for at skjule implementeringsdetaljerne for brugeren. Kun brugerens nyttige funktionalitet vil blive leveret til brugeren. Java Abstraction opnås ved at bruge abstrakte klasser og grænseflader.

Sådan opnår du abstraktion i Java-eksempel

Der er to måder at opnå abstraktion på i java.

  • Abstrakt klasse (0 til 100 %)
  • Grænseflade (Opnå 100 % abstraktion)

Før du ser eksemplet med abstraktion, skal du vide om nogle få ting.

  • Java abstrakt metode
  • Java abstrakt klasse
  • Arv
  • Java-grænseflade

Lad os se den simple Java-abstraktion eksempel programkode.

Eksemplet har en Bank abstrakt klasse. Så er der 2 klasser mere, der repræsenterer bankerne med deres rentemetode.

abstract class Bank {
    abstract int getRateOfInterest();
}

class SBI extends Bank {
    int getRateOfInterest() {
        return 7;
    }
}

class HDFC extends Bank {
    int getRateOfInterest() {
        return 8;
    }
}

class TestBank {
    public static void main(String args[]) {
        Bank b;
        b = new SBI();
        System.out.println("SBI Interest is: " + b.getRateOfInterest() + " %");
        b = new HDFC();
        System.out.println("HDFC Interest is: " + b.getRateOfInterest() + " %");
    }
}

Hvad er nogle realtidseksempler på abstraktion i Java?

Svar:- Lad os se nogle eksempler på abstraktioner i realtid:-

  • Køretøj (bil/cykel) – Du kan cykle eller køre bil uden viden om, hvordan det fungerer.
  • ATM-maskine - Det er en dag brugt maskine. Her kan du foretage kontanthævning, pengeoverførsel, tjekke banksaldo osv. Men du ved ikke, hvordan implementeringen internt har fungeret og fungerer.

Typer af abstraktion

Typisk kan abstraktion ses på to måder:

  • Dataabstraktion
  • Kontrol abstraktion

Abstraktion med grænseflade

En abstrakt klasse kan også bruge til at give en implementering af grænsefladen. Brug af en grænseflade tvunget til at implementere alle metoder. Se nedenstående eksempel:-

interface MainInterface {
    void Method1();

    void Method2();

    void Method3();

}

abstract class SampleAbsClass implements MainInterface {
    public void Method4() {
        System.out.println("I am c");
    }
}

class NormalClass extends SampleAbsClass {


    @Override
    public void Method1() {

    }

    @Override
    public void Method2() {

    }

    @Override
    public void Method3() {

    }
}

class Example {
    public static void main(String args[]) {
        MainInterface mi = new NormalClass();
        mi.Method1();
        mi.Method2();
        mi.Method3();
    }
}

Hvordan abstrakt klasse med konstruktør, datamedlem og metoder?

Du kan bruge datamedlem, abstrakt metode, metodelegeme (ikke-abstrakt metode), konstruktør og endda main() metode i abstraktklassen. Som eksemplet nedenfor.

abstract class Bike {
    Bike() {
        System.out.println("Bike created");
    }

    abstract void run();

    void changeGear() {
        System.out.println("Gear changed");
    }
}

//Creating a Child class inherits Abstract class
class Honda extends Bike {
    void run() {
        System.out.println("Bike is running safely...");
    }
}

//Creating a Test class which calls abstract and non-abstract methods
class BikeAbstraction {
    public static void main(String args[]) {
        Bike obj = new Honda();
        obj.run();
        obj.changeGear();
    }
}  

Skriv en kommentar, hvis du er i tvivl eller forslag til denne øvelse.

Bemærk: Dette eksempel (Projekt) er udviklet i IntelliJ IDEA 2018.2.6 (Community Edition)
JRE:11.0.1
JVM:OpenJDK 64-Bit Server VM af JetBrains s.r.o
macOS 10.14.1
Java version 11
Alle Java-abstraktionseksempler er i Java 11, så det kan ændre sig på anderledes end Java 9 eller 10 eller opgraderede versioner.


Java tag