Wir wissen, dass die drei Hauptmerkmale der Objektorientierung Kapselung, Vererbung und Polymorphismus sind. Manchmal sind wir jedoch immer verwirrt über diese Konzepte. Diese Konzepte werden im Folgenden zusammengestellt, um eine solide Grundlage für die zukünftige abstraktionsorientierte Programmierung zu legen.
Das Konzept der Kapselung ist immer noch leicht zu verstehen. Wenn Sie Klassen definieren können, dann haben Sie meiner Meinung nach das Konzept der Kapselung vollständig verstanden. Die unten definierten Klassen dienen der Kapselung von Daten.
Der Vorteil der Vererbung ist die Wiederverwendung von Code. Geerbte Unterklassen verfügen automatisch über alle Eigenschaften und Methoden der übergeordneten Klasse. Das Erben vorhandener Klassen bedeutet also, die Methoden und Felder dieser Klassen wiederzuverwenden. Auf dieser Basis können Unterklassen auch einige neue Methoden und Felder hinzufügen, um neue Anforderungen zu erfüllen. Dies ist eine Kerntechnologie in der Java-Programmierung.
Wie kann man also beurteilen, ob eine Vererbung erforderlich ist? Die „ist-ein“-Beziehung ist ein offensichtliches Merkmal der Vererbung. Die Bedeutung dieses Satzes kann wie folgt interpretiert werden: Der Grund, warum Student Person erbt, liegt darin, dass Student Person ist. Wenn es keine solche Beziehung gäbe, wäre eine Erbschaft nicht erforderlich. Dies ist auch die Definition des Liskov-Substitutionsprinzips. Untertypen müssen in der Lage sein, ihre übergeordneten Typen zu ersetzen.
Wenn Sie eine Unterklasse durch Erweiterung einer Oberklasse definieren, müssen Sie nur auf die Unterschiede zwischen der Unterklasse und der Oberklasse hinweisen. Daher sollten beim Entwerfen einer Klasse allgemeine Methoden in der Superklasse
und Methoden mit speziellen Zwecken in Unterklassen platziert werden. Dieser Ansatz, allgemeine Funktionen in der Superklasse zu platzieren, ist in der Objektklasse sehr verbreitet. orientierte Programmierung.
Die dynamische Bindung hat eine sehr wichtige Funktion: Das Programm kann erweitert werden, ohne den vorhandenen Code zu ändern. Polymorphismus ist also die Grundlage des Offen- und Geschlossen-Prinzips.
Das Folgende ist ein spezifisches Beispiel für Vererbung und polymorphe Implementierung:
abstract ist das abstrakte Schlüsselwort. (Es ist besser, von einer abstrakten Klasse zu erben als von einer konkreten Klasse.)
public abstract class Person { // 抽象类
private String name; // 私有变量
public String getName() { // Getter方法
return name;
} public void setName(String name) { //Setter方法
this.name = name;
}
public Person(String name) { // 构造函数,用于初始化name
super(); this.name = name;
} public abstract String getDesc(); // 抽象类中的抽象方法。 只有声明,没有具体实现。
public String toString(){ // toString方法覆盖了Object类的toString方法
return name + getDesc();
}
}
public class Student extends Person { // 继承类
private String major; // 新增加的数据
public String getMajor() { return major;
} public void setMajor(String major) { this.major = major;
}
public Student(String name,String major) { // 构造函数用于初始化
super(name); // 调用超类构造函数
this.major = major;
}
@Override public String getDesc() { // 必须实现超类中的抽象方法 // TODO Auto-generated method stub
return " : a student, major is " + major;
}
Jede Unterklasse, die eine Superklasse erbt, muss die Definition in der Superklasse implementieren (unabhängig von der Implementierungsmethode). abstrakte Methode. public class Employee extends Person{
private double salary;
public double getSalary() {
return salary;
}public void setSalary(double salary) {
this.salary = salary;
}
public Employee(String name, double salary) {
super(name);
this.salary = salary;
}
@Override
public String getDesc() { // TODO Auto-generated method stub
return " :a employee, salary is " + salary;
}
}
Das Verständnis von Kapselung, Vererbung und Polymorphismus (insbesondere Polymorphismus) ist die Grundlage für das Verständnis von Entwurfsmustern.
Um mehr über Java-Tutorials zu erfahren, besuchen Sie:
Java-TutorialDas obige ist der detaillierte Inhalt vonDie drei Hauptmerkmale von Java: Kapselung, Vererbung und Polymorphismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!