Drei Merkmale der objektorientierten Programmierung: Einkapselungsvererbungspolymorphismus

Paket

Einige Informationen der Klasse sind in der Klasse verborgen, und kein externes Programm darf direkt darauf zugreifen. Die Operation und der Zugriff auf die verborgenen Informationen können mit den von der Klasse bereitgestellten Methoden realisiert werden. Mit anderen Worten, verbergen Sie die Informationen des Objekts und verlassen Sie die Zugriffsschnittstelle. Um das Ziel direkt durch Manipulieren des Klassenobjekts zu erreichen, ist kein gutes Verständnis der spezifischen Implementierung erforderlich, und die spezifische Implementierung der Klassenattribute und -methoden ist für die Außenseite unsichtbar. Es ist nicht nur bequem, sondern auch schützend.

zum Beispiel

public class Student {
    
    
    private int id;//id属性私有化
    private String name;//name属性私有化

    //获取id的方法
    public int getId() {
    
    
        return id;
    }

    //设置id的方法
    public void setId(int id) {
    
    
        this.id = id;
    }

    //获取name的方法
    public String getName() {
    
    
        return name;
    }

    //设置name的方法
    public void setName(String name) {
    
    
        this.name = name;
    }
}

 
 

erben

Vererbung ist eine Technologie, die die Definition einer vorhandenen Klasse als Grundlage für die Erstellung einer neuen Klasse verwendet. Die Definition einer neuen Klasse kann neue Daten oder neue Funktionen hinzufügen oder die Funktionen der übergeordneten Klasse verwenden, die übergeordnete Klasse jedoch nicht selektiv erben Klasse. Der vorherige Code kann durch Vererbung sehr einfach wiederverwendet werden.

Beachten Sie die folgenden 3 Punkte zur Vererbung:

  • Die Unterklasse verfügt über alle Eigenschaften und Methoden des übergeordneten Klassenobjekts (einschließlich privater Eigenschaften und privater Methoden), aber die privaten Eigenschaften und Methoden in der übergeordneten Klasse sind für die Unterklasse nicht zugänglich, sie haben sie nur.

  • Unterklassen können ihre eigenen Eigenschaften und Methoden haben, dh Unterklassen können die übergeordnete Klasse erweitern.

  • Unterklassen können die Methoden der übergeordneten Klasse auf ihre eigene Weise implementieren.
     
     

Polymorphismus

Polymorphismus bedeutet, wie der Name schon sagt, dass ein Objekt mehrere Zustände hat. Insbesondere verweist die Referenz der übergeordneten Klasse auf die Instanz der untergeordneten Klasse.

Definition von Polymorphismus

Bezieht sich auf den spezifischen Typ, auf den die im Programm definierte Referenzvariable verweist , und der über die Referenzvariable ausgegebene Methodenaufruf wird zum Zeitpunkt der Programmierung nicht bestimmt, sondern während der Ausführung des Programms , dh des Instanzobjekts von Auf welche Klasse eine Referenzvariable verweist. Die Methode, in der der von der Referenzvariablen ausgegebene Methodenaufruf die in der Klasse implementierte Methode ist, muss während der Ausführung des Programms festgelegt werden.

Vorteile des Polymorphismus

Da die spezifische Klasse bestimmt wird, während das Programm ausgeführt wird, kann die Referenzvariable an eine Vielzahl verschiedener Klassenimplementierungen gebunden werden, ohne den Quellcode zu ändern, was dazu führt, dass sich die von der Referenz aufgerufene spezifische Methode entsprechend ändert, dh nicht Ändern Der Programmcode kann den spezifischen Code ändern, der beim Ausführen des Programms gebunden ist, sodass das Programm mehrere Ausführungszustände auswählen kann, was Polymorphismus ist.

Eigenschaften des Polymorphismus

  • Zwischen Objekttyp und Referenztyp besteht eine Beziehung zwischen Vererbung (Klasse) und Implementierung (Schnittstelle).
  • Die Methode, bei der die von der Referenztypvariable ausgegebene Methode die Methode aufruft, bei der die Klasse während der Ausführung des Programms bestimmt werden muss.
  • Polymorphismus kann die Methode nicht aufrufen "existiert nur in der untergeordneten Klasse, existiert aber nicht in der übergeordneten Klasse";
  • Wenn die Unterklasse die Methode der übergeordneten Klasse überschreibt, wird die von der Unterklasse abgedeckte Methode tatsächlich ausgeführt. Wenn die Unterklasse die Methode der Oberklasse nicht überschreibt, wird die Methode der Oberklasse ausgeführt.

Implementierung von Polymorphismus

In Java gibt es zwei Formen des Polymorphismus: Vererbung (Umschreiben derselben Methode durch mehrere Unterklassen) und Schnittstelle (Implementieren der Schnittstelle und Überschreiben derselben Methode in der Schnittstelle).
 

zum Beispiel

public class Animal {
    
    
    int id = 1;
    public void name(){
    
    
        System.out.println("动物");
    }
}
class Cat extends Animal{
    
    
    int id = 2;
    public void name(){
    
    
        System.out.println("猫");
    } 
}
//子类对象的多态性使用前提:1.要有类的继承 2.要有子类对父类方法的重写
public class Test {
    
    
    public static void main(String[] args) {
    
    
    	//子类对象的多态性:父类的引用指向子类对象
          Animal a = new Cat();//向上转型
          
        //虚拟方法调用:通过父类的引用指向子类对象的实体,调用方法时,实际执行子类重写父类的方法
          a.name();//输出:猫
          
        //输出的是Person对象的id属性
          System.out.println(p.id);//输出:1
    }
}

Ich denke du magst

Origin blog.csdn.net/weixin_43901865/article/details/112672546
Empfohlen
Rangfolge