Home > Java > javaTutorial > Detailed explanation of the concept of method overloading in JAVA - simple and easy to understand

Detailed explanation of the concept of method overloading in JAVA - simple and easy to understand

王林
Release: 2019-08-30 14:30:42
forward
3026 people have browsed it

1. What method is overloaded?

The overloading of the method refers to the method name is the same, but the parameter type is different

1.1, attack method overloading

There is a hero called the physical attack hero ADHero, which provides three methods for ADHero.

public void attack()
public void attack(Hero h1)
public void attack(Hero h1, Hero h2)
Copy after login

The method names are the same, but the parameter types are different
When calling the attack method, the corresponding method will be automatically called based on the type and quantity of parameters passed

Detailed explanation of the concept of method overloading in JAVA - simple and easy to understand

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);
    }
 
}
Copy after login

1.2. Variable number of parameters

If you want to attack more heroes, you need to design more methods, so that the class will appear It’s very cumbersome, like this:

public void attack(Hero h1)
public void attack(Hero h1,Hero h2)
public void attack(Hero h1,Hero h2,Hero 3)
Copy after login

At this time, you can use a variable number of parameters
You only need to design a method
public void attack(Hero...heros)
It can represent All the above methods
In the method, use the method of operating array to process the parameter heros

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);
 
    }
 
}
Copy after login

Exercise: Treatment
(Design a class Support (auxiliary hero) to inherit Hero and provide a heal (Treatment) method
Overload the heal method of Support
heal()
heal(Hero h) //Add blood to the specified hero
heal(Hero h, int hp) // Adds hp to the specified hero)

Answer

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 + "点血");
    }
     
}
Copy after login

For more related content, please visit the PHP Chinese website: JAVA Video Tutorial

The above is the detailed content of Detailed explanation of the concept of method overloading in JAVA - simple and easy to understand. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template