Heim > Java > javaLernprogramm > Die drei Hauptmerkmale von Java: Kapselung, Vererbung und Polymorphismus

Die drei Hauptmerkmale von Java: Kapselung, Vererbung und Polymorphismus

angryTom
Freigeben: 2019-07-17 08:41:10
Original
2872 Leute haben es durchsucht

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();
      }

}
Nach dem Login kopieren
extensions ist ein geerbtes Schlüsselwort. Student erbt Person, daher verfügt Student über das Namensattribut.

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;
    }
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren
rrreeLaufendes Ergebnis


Aus diesem Beispiel ist auch ersichtlich, dass es ohne Kapselung keine Vererbung gibt. und ohne Vererbung gäbe es keinen sogenannten Polymorphismus.

Die drei Hauptmerkmale von Java: Kapselung, Vererbung und PolymorphismusDas 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-Tutorial

Das 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!

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