Heim > Java > javaLernprogramm > Was ist eine abstrakte Klasse in Java?

Was ist eine abstrakte Klasse in Java?

零下一度
Freigeben: 2017-06-25 09:34:55
Original
2062 Leute haben es durchsucht

Um Schnittstellen zu verstehen, müssen wir zunächst abstrakte Klassen kennen. Was ist also eine abstrakte Klasse?

Problembeschreibung: Wir haben viele Objekte im Leben, die nicht konkret beschrieben werden können. Beispielsweise können wir sagen, dass ein Viereck vier Seiten hat. Genauer gesagt sind zwei Seiten eines Rechtecks ​​symmetrisch und gleich, und vier Seiten eines Quadrats sind symmetrisch und gleich. Bei gewöhnlichen Grafiken ist es jedoch schwierig, sie im Detail zu beschreiben. Die Konvertierung in die Java-Sprache bedeutet: Für eine ganz bestimmte Klasse können wir ihre verschiedenen Attribute und Methoden leicht definieren, aber für einige Klassen ist es für uns schwierig zu verstehen, wie ihre Methoden implementiert werden. Zu diesem Zeitpunkt können wir abstrakte Klassen verwenden.

Das Syntaxformat einer abstrakten Klasse ist wie folgt:

1 public abstract class 类名{2   abstract 返回值类型 方法名(参数列表);//定义抽象方法      3 }
Nach dem Login kopieren
Das Schlüsselwort zum Definieren eines Abstracts Methode ist: abstrakt.

Eine mit „Abstrakt“ definierte Klasse wird als abstrakte Klasse bezeichnet, und eine mit „Abstrakt“ definierte Methode wird als abstrakte Methode bezeichnet.

Abstrakte Methoden haben keine Methodenkörper und selbst keine Bedeutung, daher können abstrakte Klassen nicht instanziiert werden.

Wenn es von seiner Unterklasse geerbt wird, muss die Unterklasse alle darin enthaltenen abstrakten Methoden implementieren.

Solange eine Klasse eine abstrakte Methode enthält, muss diese Klasse als abstrakte Klasse definiert werden.

Nachdem wir die abstrakte Klasse verstanden haben, denken wir weiter über die folgenden Fragen nach:

public abstract class shape 
{//定义一个图形抽象类public abstract void toString();//toString抽象方法public abstract void paint();//画图的抽象方法}public class triangle extends shape
{public void toString()
    {
        system.out.println("toString");
    }public void paint()
    {
        system.out.println("paint");
    }
}
Nach dem Login kopieren
Es scheint, als gäbe es kein Problem. Was ist, wenn wir nicht möchten, dass einige Klassen eine Malmethode haben? Die Paint-Methode in eine andere Klasse einordnen? Aber auch andere Klassen müssen diese Methode verwenden. Die Syntax von Java schreibt vor, dass Klassen nicht von mehreren Klassen erben können. Was soll ich tun? Zu diesem Zeitpunkt können wir über die Verwendung von Schnittstellen nachdenken.

Interface ist eine Erweiterung der abstrakten Klasse, die den Mangel der Mehrfachvererbung in Java behebt. Wir können die Paint-Methode in eine Schnittstelle kapseln und dann die Unterklasse der zu verwendenden Grafikklasse diese Schnittstelle implementieren lassen. In Java kann eine Klasse mehrere Schnittstellen implementieren. Wir können verschiedene Methoden in Schnittstellen kapseln und sie der Klasse zur Verwendung überlassen.

Das Schlüsselwort der Schnittstelle ist Schnittstelle. Seine Definition lautet wie folgt:

public interface 接口名  extends 类名  implements 接口,....{  //定义常量
  public static final 数据类型 常量名=值;  //定义抽象方法
  public abstract 返回值类型 方法名 (参数列表);        
}
Nach dem Login kopieren
Es ist zu beachten, dass: 1. Die Schnittstelle nicht instanziiert werden kann. 2. Der Zugriffsmodifikator der Schnittstelle kann nur instanziiert werden öffentlich sein 3. Die Schnittstelle stellt standardmäßig das Schlüsselwort „public abstract static final“ bereit

Das obige ist der detaillierte Inhalt vonWas ist eine abstrakte Klasse in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage