1. Welche Methode ist überlastet?
Die Überladung der Methode bezieht sich darauf, dass der Methodenname derselbe ist, der Parametertyp jedoch unterschiedlich ist
1.1, Überladung der Angriffsmethode
Es gibt einen Helden namens „Physical Attack Hero“ ADHero, der drei Methoden für ADHero bereitstellt.
public void attack() public void attack(Hero h1) public void attack(Hero h1, Hero h2)
Die Methodennamen sind gleich, aber die Parametertypen sind unterschiedlich.
Beim Aufruf der Angriffsmethode wird die entsprechende Methode basierend auf der Art und Menge der übergebenen Parameter automatisch aufgerufen
public class ADHero extends Hero { public void attack() { System.out.println(name + " 进行了一次攻击 ,但是不确定打中谁了"); } public void attack(Hero h1) { System.out.println(name + "对" + h1.name + "进行了一次攻击 "); } public void attack(Hero h1, Hero h2) { System.out.println(name + "同时对" + h1.name + "和" + h2.name + "进行了攻击 "); } public static void main(String[] args) { ADHero bh = new ADHero(); bh.name = "赏金猎人"; Hero h1 = new Hero(); h1.name = "盖伦"; Hero h2 = new Hero(); h2.name = "提莫"; bh.attack(h1); bh.attack(h1, h2); } }
1.2. Variable Anzahl von Parametern
Wenn Sie mehr Helden angreifen möchten, müssen Sie mehr Methoden entwerfen, damit die Klasse wird angezeigt Es ist sehr umständlich, so:
public void attack(Hero h1) public void attack(Hero h1,Hero h2) public void attack(Hero h1,Hero h2,Hero 3)
Zu diesem Zeitpunkt können Sie eine variable Anzahl von Parametern verwenden
Sie müssen nur eine Methode entwerfen
public void attack(Hero... Helden)
um alle oben genannten Methoden darzustellen
Verwenden Sie in der Methode die Methode des Operationsarrays, um die Parameter Helden zu verarbeiten
public class ADHero extends Hero { public void attack() { System.out.println(name + " 进行了一次攻击 ,但是不确定打中谁了"); } // 可变数量的参数 public void attack(Hero... heros) { for (int i = 0; i < heros.length; i++) { System.out.println(name + " 攻击了 " + heros[i].name); } } public static void main(String[] args) { ADHero bh = new ADHero(); bh.name = "赏金猎人"; Hero h1 = new Hero(); h1.name = "盖伦"; Hero h2 = new Hero(); h2.name = "提莫"; bh.attack(h1); bh.attack(h1, h2); } }
Übung: Behandlung
(Entwerfen Sie eine Klasse Support (Hilfsheld ), um Hero zu erben und eine Heilungsmethode (Behandlung) bereitzustellen
Überladen Sie die Heilungsmethode von Support
heal()
heal(Hero h) //Fügen Sie dem angegebenen Helden Blut hinzu
heal(Hero h , int hp) // HP zum angegebenen Helden hinzugefügt)
Antwort
public class Support extends Hero { public void heal() { System.out.println("对自己进行治疗"); } public void heal(Hero hero) { System.out.println("给英雄 " + hero + " 加血"); } public void heal(Hero hero, int hp) { System.out.println("给英雄 " + hero + " 加了 " + hp + "点血"); } }
Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website: JAVA-Video-Tutorial
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung des Konzepts der Methodenüberladung in JAVA – einfach und leicht verständlich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!