Heim >Java >javaLernprogramm >Schlüsselwort: Abstract-Extends, Interface-Implements
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.
Warum die Java-Schnittstelle verwenden?
Es gibt hauptsächlich drei Gründe, die Schnittstelle zu verwenden. Sie sind unten aufgeführt.
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“**
„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!