Hallo Ich möchte nur sicherstellen, dass ich diese Konzepte richtig habe. Überladen in Java bedeutet, dass Sie einen Konstruktor oder eine Methode mit einer anderen Anzahl von Argumenten oder unterschiedlichen Datentypen haben können. d. h.Java überladen vs überschreiben
public void setValue(){
this.value = 0;
}
public void setValue(int v){
this.value = v;
}
Wie wäre es mit dieser Methode? Wird es immer noch als Überladung betrachtet, da es einen anderen Datentyp zurückgibt?
public int setValue(){
return this.value;
}
Zweite Frage ist: Was ist in Java zu überschreiben? Bezieht es sich auf die Vererbung. Lassen Sie uns ich habe folgendes:
public class Vehicle{
double basePrice = 20000;
//constructor defined
public double getPrice(){
return basePrice;
}
}
public class Truck extends Vehicle{
double truckPrice = 14000;
//constructor defined
public double getPrice(){
return truckPrice;
}
}
So, jetzt lassen Sie uns sagen, ich habe folgendes
Truck truck = new Truck();
wenn ich
truck.super.getPrice()
diese zurückkehren würde den Preis von der Fahrzeugklasse aufrufen, 20.000
wenn ich rufe
truck.getPrice()
dies würde den Preis in der Lkw-Klasse zurückkehren, 14.000
Ist mein Wissen und Gewissen richtig für beide Fragen?
Ich würde nicht setValue() verwenden, da es nicht eindeutig ist, was es setzt den Wert auf. clearValue() wäre klarer und somit nicht überladen. –
du meinst überschreiben nicht überschreiben. Das Überschreiben von Methoden eines Objekts wird in JavaScript häufiger besprochen. dh. Object.toString = function() {return "Diese Funktion wurde überschrieben";}; –