Heim  >  Artikel  >  Java  >  Wie überschreibe ich eine Methode in Java?

Wie überschreibe ich eine Methode in Java?

coldplay.xixi
coldplay.xixiOriginal
2020-06-24 15:08:455902Durchsuche

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)].

Wie überschreibe ich eine Methode in Java?

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 Quadratklasse

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

Sie können sehen, dass es in der Unterklassenmethode immer noch eine Show gibt, aber die Funktion und Aussage der Methode sind recht Anders als die Show-Methode in ihrer übergeordneten Klasse, da die Funktion der Show-Methode des Unterklassen-Quadrats nicht nur in der Lage sein muss, die Anzahl der gegenüberliegenden Seiten auszugeben, sondern auch die Länge der gegenüberliegenden Seiten. Daher kann die Show-Methode der übergeordneten Klasse zu diesem Zeitpunkt die Anforderungen der Unterklasse nicht erfüllen. Dies ist das Umschreiben von Methoden in Java In anderen Fällen werden in diesem Artikel mehrere häufig verwendete Methoden zum Umschreiben aufgeführt. Unter dem Java.lang-Paket gibt es eine spezielle Klasse Wenn wir eine Klasse erstellen, erben wir sie von der von uns erstellten Klasse. Das Schlüsselwort „extends Object“ wird jedoch weggelassen Häufig verwendete Methoden in der Object-Klasse: 1. toString()-Methode. Diese beiden Methoden werden häufig in Klassen wiederholt, die von Entwicklern erstellt wurden Die Methode toString()

gibt ein Objekt in Form einer Zeichenfolge zurück. Zum Beispiel:

Polygon p = new Polygon(3);
System.out.println(p.toString());

Die hier aufgerufene Methode

-Methode in der Object-Klasse. Die Ausgabe lautet:

toString()Es ist ersichtlich, dass beim Aufruf der

-Methode ein Objekt in der Form vorliegt Es wird eine Zeichenfolge zurückgegeben, bei der es sich um die Adresse des Objekts handelt.

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 Wie überschreibe ich eine Methode in Java? 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.

Wie überschreibe ich eine Methode in Java?

Zu diesem Zeitpunkt gibt das System den Polygon-Klassennamen und seine Attribute in Zeichenfolgenform aus.

toString()

toString()

2. Die equal()-Methode

toString()toString()

Was ist die spezifische Ausführungsform der equal()-Methode in der Objektklasse? Welche Funktion hat es? Die alte Regel besteht darin, direkt zum Code zu gehen.

public boolean equals(Object obj) {
        return (this == obj);
    }
Wie überschreibe ich eine Methode in Java?Dies ist die spezifische Implementierung der

-Methode der Object-Klasse im Quellcode. Wir wissen also, dass die Funktion der

-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));
}
}
Wie überschreibe ich eine Methode in Java? Die Ausgabe des Systems ist:

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

Wenn die

-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 Wie überschreibe ich eine Methode in Java? ü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!

Stellungnahme:
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