Methodenüberschreibung: 1. [toString()]-Methode, gibt ein Objekt in Form einer Zeichenfolge zurück. 2. [equals()]-Methode, vergleicht, ob die Referenzen zweier Objekte gleich sind, Code [sq s2=new sq(5,4);println(s1.equals(s2)].
Umgeschriebene Methode in Java Methode:
Das Umschreiben von Methoden in Java basiert auf einem der drei Hauptmerkmale von Java-Klassen: Vererbung. Ohne Vererbung können wir nicht über das Umschreiben von Methoden sprechen Die übergeordnete Klasse im Programm kann die Anforderungen der Unterklasse nicht erfüllen. Die Unterklasse kann den Inhalt und die Funktion der Methode neu definieren, um die Anforderungen der Unterklasse zu erfüllen. Der folgende Blogger führt Sie dazu, dies herauszufinden .
(1) Definieren Sie eine Polygonklasse
class Polygon{ //属性 private int number_side; //构造器 public Polygon(int number_side) { super(); this.number_side = number_side; } //方法 public int getNumber_side() { return number_side; } public void setNumber_side(int number_side) { this.number_side = number_side; } public void show(){ System.out.println("Number_side is " + this.number_side); } }
Zusätzlich zu den Get- und Set-Methoden gibt es in dieser Klasse auch eine Show-Methode, die die Anzahl der Polygonseiten ausgeben kann 🎜>
(2) Definieren Sie eine von der Polygonklasse geerbte Quadratklasseclass square extends Polygon{ //属性 private double length; //构造器 public square(double length, int number_side) { super(number_side); this.length = length; } //方法 public double getLength() { return length; } public void setLength(double length) { this.length = length; } //输出边数和边长 public void show(){ System.out.println("This is a square"); super.show(); System.out.println("Length is " + this.length); } }
Polygon p = new Polygon(3); System.out.println(p.toString());
-Methode in der Object-Klasse. Die Ausgabe lautet:
toString()
Es ist ersichtlich, dass beim Aufruf der
toString()
In tatsächlichen Anwendungen wird die toString()
-Methode normalerweise überschrieben, um einen bestimmten String-Ausgabemodus für das Objekt bereitzustellen, zum Beispiel:
public class Test { public static void main(String[] args) { Polygon p = new Polygon(3); System.out.println(p.toString()); } } class Polygon{ //属性 private int number_side; //构造器 public Polygon(int number_side) { super(); this.number_side = number_side; } //..................................此处省略其他无关的方法 @Override public String toString() { return "Polygon [number_side=" + number_side + "]";
überschreibt in der Polygonklasse Polygon-Methode, In der Hauptmethode erstellen wir ein Polygon-Objekt p und instanziieren es, indem wir die in Polygon überschriebene Methode
aufrufen. Zu diesem Zeitpunkt gibt das System den Polygon-Klassennamen und seine Attribute in Zeichenfolgenform aus.toString()
toString()
toString()
toString()
public boolean equals(Object obj) { return (this == obj); }
-Methode in Object darin besteht, zu vergleichen, ob die Referenzen zweier Objekte vorhanden sind sind gleich. Wenn wir die
-Methode in der Object-Klasse aufrufen:public class Test { public static void main(String[] args) { square s1 = new square(5.2,4); square s2 = new square(5.2,4); System.out.println(s1.equals(s2)); } }
Dann schreiben wir die
um die quadratische Klasse >Methodeequals()
public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; square other = (square) obj; if (Double.doubleToLongBits(length) != Double .doubleToLongBits(other.length)) return false; return true; }
-Methode in der quadratischen Klasse erneut aufgerufen wirdequals()
public class Test { public static void main(String[] args) { square s1 = new square(5.2,4); square s2 = new square(5.2,4); System.out.println(s1.equals(s2)); } }
equals()
lautet die Ausgabe des Systems: equals()
Im Vergleich zu vor Fasle ist die Ausgabe von true zu diesem Zeitpunkt darauf zurückzuführen, dass die Methode überschrieben wird und die überschriebene Methode
den tatsächlichen Inhalt der beiden Objekte vergleicht, dh die Attribute der beiden Objekte (Hinweis: Die Methode equal() ist keine Methode zum Vergleichen zweier Objekte (da sie bedeutungslos ist). Wenn sie gleich sind, wird true ausgegeben. Das Obige ist das Grundwissen über das Umschreiben von Methoden und einige gemeinsame Punkte. Der Blogger erwähnte zuvor im Kapitel über Polymorphismus: Das Umschreiben von Methoden ist auch eine Manifestation von Polymorphismus. Jetzt können wir wissen, dass die gleichen Methoden toString()
und equals()
in benutzerdefinierten Klassen verwendet werden in der Object-Klasse sind dies auch unterschiedliche Erscheinungsformen derselben Sache, was der Natur des Polymorphismus entspricht.
Empfohlenes Tutorial: „Java-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWie überschreibe ich eine Methode in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!