Heim >Java >javaLernprogramm >Schlüsselwort: Abstract-Extends, Interface-Implements

Schlüsselwort: Abstract-Extends, Interface-Implements

Susan Sarandon
Susan SarandonOriginal
2025-01-20 22:20:09133Durchsuche

Java-Abstract-Schlüsselwort

Das Schlüsselwort abstract wird verwendet, um eine Abstraktion in Java zu erreichen. Es handelt sich um einen Nichtzugriffsmodifikator, der zum Erstellen abstrakter Klassen und Methoden verwendet wird.

Die Rolle einer abstrakten Klasse besteht darin, abstrakte Methoden zu enthalten. Es kann jedoch auch nicht-abstrakte Methoden enthalten. Die Methode, die mit dem Schlüsselwort abstract deklariert wird und keine Implementierung hat, wird als abstrakte Methode bezeichnet.

Syntax:-

    abstract class Employee  
    {  
    abstract void work();  
    }   

Hinweis – Wir können keine abstrakten Methoden in nicht abstrakten Klassen deklarieren.

Regeln des abstrakten Schlüsselworts
Verbote

Ein abstraktes Schlüsselwort kann nicht mit Variablen und Konstruktoren verwendet werden.
Wenn eine Klasse abstrakt ist, kann sie nicht instanziiert werden.
Wenn eine Methode abstrakt ist, enthält sie keinen Körper.
Wir können das abstrakte Schlüsselwort nicht mit dem finalen Schlüsselwort verwenden.
Wir können abstrakte Methoden nicht als privat deklarieren.
Wir können abstrakte Methoden nicht als statisch deklarieren.
Eine abstrakte Methode kann nicht synchronisiert werden.

Do's(TBD)

Ein abstraktes Schlüsselwort kann nur mit Klasse und Methode verwendet werden.
Eine abstrakte Klasse kann Konstruktoren und statische Methoden enthalten.
Wenn eine Klasse die abstrakte Klasse erweitert, muss sie auch mindestens eine der abstrakten Methoden implementieren.
Eine abstrakte Klasse kann die Hauptmethode und die Endmethode enthalten.
Eine abstrakte Klasse kann überladene abstrakte Methoden enthalten.
Wir können die lokale innere Klasse als abstrakt deklarieren.
Wir können die abstrakte Methode mit einer Throw-Klausel deklarieren.

Was ist eine abstrakte Klasse:

Eine abstrakte Klasse ist eine Klasse, die als abstrakt deklariert ist – sie kann abstrakte Methoden enthalten oder auch nicht. Abstrakte Klassen können nicht instanziiert werden, aber sie können in Unterklassen unterteilt werden.

Was ist eine abstrakte Methode:

Eine abstrakte Methode ist eine Methode, die ohne Implementierung (ohne geschweifte Klammern und gefolgt von einem Semikolon) wie folgt deklariert wird:
abstract void moveTo(double deltaX, double deltaY);

*Abstraktion: *

Das Hauptziel besteht darin, Komplexität zu bewältigen, indem unnötige Details vor dem Benutzer verborgen werden.

Nur ​​notwendige Daten anzeigen und unerwünschte Details vor dem Benutzer verbergen.

Für eine abstrakte Klasse haben wir eine Kinderklasse. Kann diese untergeordnete Klasse auch eine abstrakte Klasse sein?
Ja, in diesem Fall kann die Child-Klasse nicht instanziiert werden.

Referenz:https://www.javatpoint.com/abstract-keyword-in-java

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

package chennai.velachery;

public class Child extends Parent {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Child ch = new Child(); 
        ch.getJob();
        ch.studyWell();
        Child.display();
    }

    @Override //Annotation : Metadata
    //Data about data
    void getJob() {
        // TODO Auto-generated method stub

    }


}

Beispiel 2:

package chennai.velachery;

public abstract class Parent1 {

    public void watch_tv()
    {
        System.out.println("Watching TV");
    }
    public void chat_with_friends()
    {
        System.out.println("Chatting with neighbours");
    }
    public abstract void cook(); 

}

package chennai.velachery;

public class Child1 extends Parent1{

    public static void main(String[] args) {
//      Child1 ch = new Child1(); 
//      ch.cook();
//      ch.chat_with_friends(); 
//      ch.watch_tv();
//      ch.work();

        Child1 ch = new Child1(); 
        //Dynamic Binding 
        //Parent Class Reference points to Child class Memory
        Parent1 parent = new Child1();  

        parent.watch_tv();
        parent.chat_with_friends();
        parent.cook();
        //parent.work(); 
    }
    public void watch_tv()
    { //Runtime Polymorphism
        System.out.println("Watching OTT");
    }

    @Override
    public void cook() {
        // TODO Auto-generated method stub
        System.out.println("Cooking");

    }

    public void work()
    {
        System.out.println("Java Projects");
    }

}

Schnittstelle in Java

Eine Schnittstelle in Java ist ein Entwurf einer Klasse. Es verfügt über statische Konstanten und abstrakte Methoden.

Die Schnittstelle in Java ist ein Mechanismus zur Abstraktion. In der Java-Schnittstelle können nur abstrakte Methoden vorhanden sein, kein Methodenkörper. Es wird verwendet, um Abstraktion und Mehrfachvererbung in Java zu erreichen.

Mit anderen Worten kann man sagen, dass Schnittstellen abstrakte Methoden und Variablen haben können. Es darf keinen Methodenkörper haben.

Java Interface repräsentiert auch die IS-A-Beziehung.

Sie kann nicht wie die abstrakte Klasse instanziiert werden.

Warum die Java-Schnittstelle verwenden?

Es gibt hauptsächlich drei Gründe, die Schnittstelle zu verwenden. Sie sind unten aufgeführt.

Image description

Wie deklariere ich eine Schnittstelle?

Eine Schnittstelle wird mit dem Schlüsselwort interface deklariert. Es bietet völlige Abstraktion; bedeutet, dass alle Methoden in einer Schnittstelle mit dem leeren Textkörper deklariert werden und alle Felder standardmäßig öffentlich, statisch und endgültig sind. Eine Klasse, die eine Schnittstelle implementiert, muss alle in der Schnittstelle deklarierten Methoden implementieren.

*SCHNITTSTELLE: *

Eine Schnittstelle ist eine Gruppe verwandter Methoden mit leeren Körpern
100 % Abstraktion:

Syntax:

    abstract class Employee  
    {  
    abstract void work();  
    }   

Beispiel:

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

Referenz:https://www.javatpoint.com/interface-in-java

Erweitert vs. implementiert in Java:

In Java wird das Schlüsselwort „extens“ verwendet, um alle Eigenschaften und Methoden der übergeordneten Klasse zu erben, während das Schlüsselwort „implements“ verwendet wird, um die in einer Schnittstelle definierte Methode zu implementieren.

**
Unterschied zwischen dem Schlüsselwort „extends“ und „implements“**

Image description

„extends“-Schlüsselwort in Java

In Java wird das Schlüsselwort „extends“ verwendet, um anzugeben, dass die zu definierende Klasse durch Vererbung von der Basisklasse abgeleitet wird. Im Grunde wird das Schlüsselwort „extends“ verwendet, um die Funktionalität der übergeordneten Klasse auf die Unterklasse zu erweitern. In Java sind Mehrfachvererbungen aufgrund von Mehrdeutigkeit nicht zulässig. Daher kann eine Klasse nur eine Klasse erweitern, um Mehrdeutigkeiten zu vermeiden.

package chennai.velachery;

public class Child extends Parent {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Child ch = new Child(); 
        ch.getJob();
        ch.studyWell();
        Child.display();
    }

    @Override //Annotation : Metadata
    //Data about data
    void getJob() {
        // TODO Auto-generated method stub

    }


}

„implementiert“-Schlüsselwort in Java

In Java wird das Schlüsselwort „implements“ zum Implementieren einer Schnittstelle verwendet. Eine Schnittstelle ist ein spezieller Klassentyp, der eine vollständige Abstraktion implementiert und nur abstrakte Methoden enthält. Um auf die Schnittstellenmethoden zuzugreifen, muss die Schnittstelle von einer anderen Klasse mit dem Schlüsselwort „implementiert“ „implementiert“ werden und die Methoden müssen in der Klasse implementiert werden, die die Eigenschaften der Schnittstelle erbt. Da eine Schnittstelle nicht über die Implementierung der Methoden verfügt, kann eine Klasse eine beliebige Anzahl von Schnittstellen gleichzeitig implementieren.

/

package chennai.velachery;

public abstract class Parent1 {

    public void watch_tv()
    {
        System.out.println("Watching TV");
    }
    public void chat_with_friends()
    {
        System.out.println("Chatting with neighbours");
    }
    public abstract void cook(); 

}

Referenz:https://www.geeksforgeeks.org/extends-vs-implements-in-java/

Beispiel:

    abstract class Employee  
    {  
    abstract void work();  
    }   

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

Abstract Class u>
0 bis 100 % Abstraktion

abstraktes Schlüsselwort

nicht statische Variablen

kann vorhanden sein

*
*vs Schnittstelle 100 % Abstraktion
Kein abstraktes Schlüsselwort
alle Variablen sind statisch,
endgültig und öffentlich

Das obige ist der detaillierte Inhalt vonSchlüsselwort: Abstract-Extends, Interface-Implements. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn