Polymorphismus bezieht sich darauf, dass Objekte unterschiedlichen Typs auf dieselbe Nachricht reagieren können. Es bietet die Vorteile von Flexibilität, Abstraktion, Verhaltensfreigabe und Code-Freigabe, was maximale Auslastung und Einfachheit sowie Ladegeschwindigkeit bedeutet.
1. Die Rolle des Polymorphismus
Beseitigen Sie die Kopplungsbeziehung zwischen Typen. Das heißt, dass dasselbe Ereignis, das auf verschiedenen Objekten auftritt, zu unterschiedlichen Ergebnissen führt.
2. Implementierungsformen von Polymorphismus
1. Überladung (vorkommend in der gleichen Klasse)
2.
3. Vorteile von Polymorphismus
1. Erweiterbarkeit
3 .Schnittstelle (Polymorphismus bietet eine gemeinsame Schnittstelle zu Unterklassen durch Methodensignaturen)
4. Einfachheit
5. Flexibilität
Hinweis: Diese Vorteile mögen fiktiv klingen, aber Sie können sie nur realisieren, wenn Sie sie tatsächlich anwenden.
Drei Voraussetzungen für die Existenz von Polymorphismus1 Es muss eine Vererbungsbeziehung bestehen
2 Elternklasse
3. Die Referenz der Elternklasse verweist auf das Unterklassenobjekt
Codebeispiel: Definieren Sie eine Elternklasse „Tier“ und eine Unterklasse „Hund“
1 //父类——Animal 2 public class Animal { 3 int num = 44; 4 static int age = 2; 5 6 public void eat() { 7 System.out.println("动物都需要吃东西"); 8 } 9 10 public static void sleep() {11 System.out.println("动物需要睡觉");12 }13 14 public void run() {15 System.out.println("长腿的动物爱奔跑");16 }17 }
1 //子类——Dog 2 public class Dog extends Animal { 3 int num = 5; 4 static int age = 5; 5 String name = "Tom"; 6 7 public void eat() { 8 System.out.println("我爱吃狗粮"); 9 }10 11 public static void sleep() {12 System.out.println("我是一只不爱睡觉的活泼狗狗");13 }14 15 public void catchMouse() {16 System.out.println("我喜欢多管闲事");17 }18 19 }
1 //测试类 2 public class Demo_Test { 3 public static void main(String[] args) { 4 Animal a = new Dog(); 5 a.eat(); 6 a.sleep(); 7 a.run(); 8 9 System.out.println(a.num);10 System.out.println(a.age);11 }12 }
Notizen-Demonstration:
Aus dem obigen Druckergebnis (7) können wir schließen:
1) Mitgliedsvariablen: Drucken Sie die übergeordnete Klasse, die Unterklasse wird nicht ausgegeben;
2) Mitgliedsmethode: Die übergeordnete Klasse ist Wenn sie statisch ist, wird die übergeordnete Klasse gedruckt. Wenn sie nicht statisch ist, wird die Unterklasse direkt gedruckt.
3) Es gibt Fehler in 5 und 6 auf der linken Seite, weil die Die Methode, die wir beim Aufruf statischer Mitglieder verwendet haben, ist falsch. (Der richtige Screenshot wird unten angezeigt)
4) Beim Aufrufen einer Methode, die nicht in der übergeordneten Klasse (a.catchMouse();) enthalten ist, wird ein Fehler angezeigt gemeldet. )
Derzeit kann der Polymorphismus seine eigenen einzigartigen Attribute und Methoden nicht verwenden. Wie kann man ihn also lösen?
Antwort: Richten Sie diesen Verweis auf die übergeordnete Klasse auf das Unterklassenobjekt a und erzwingen Sie ihn dann zurück auf den Dog-Typ. Auf diese Weise ist a eine Referenz vom Typ Dog und zeigt auch auf das Dog-Objekt.
Das obige ist der detaillierte Inhalt vonJava-Grundlagen – Polymorphismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!