>Java >java지도 시간 >JAVA의 메소드 오버로딩 개념에 대한 자세한 설명 - 간단하고 이해하기 쉽습니다.

JAVA의 메소드 오버로딩 개념에 대한 자세한 설명 - 간단하고 이해하기 쉽습니다.

王林
王林앞으로
2019-08-30 14:30:423027검색

1. 오버로드되는 방법은 무엇인가요?

메서드 오버로딩은 메소드 이름은 같지만 매개변수 유형이 다르다는 뜻

1.1, 공격 방법 오버로딩

물리 공격 영웅 ADHero라는 영웅이 있는데, ADHero에 세 가지 메소드를 제공합니다. .

public void attack()
public void attack(Hero h1)
public void attack(Hero h1, Hero h2)

메서드 이름은 같지만, 매개변수 유형이 다릅니다
공격 메소드 호출 시 전달된 매개변수의 유형과 개수에 따라 해당 메소드가 자동으로 호출됩니다.

JAVA의 메소드 오버로딩 개념에 대한 자세한 설명 - 간단하고 이해하기 쉽습니다.

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.

더 많은 영웅을 공격하려면 더 많은 메소드를 설계해야 하므로 클래스가 다음과 같이 번거로워집니다.

public void attack(Hero h1)
public void attack(Hero h1,Hero h2)
public void attack(Hero h1,Hero h2,Hero 3)

이때 가변 개수의 매개변수를 사용할 수 있습니다
필요한 것은 하나의 방법을 설계합니다
공개 무효 공격(영웅...영웅)
위의 모든 방법을 나타낼 수 있습니다
방법에서는 연산 배열 방법을 사용하여 매개변수 영웅을 처리합니다

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

연습: 처리
(클래스 지원( 보조 영웅) 영웅을 상속하고 치유 방법을 제공
지원의 치유 방법을 오버로드
heal()
heal(Hero h) //지정된 영웅에게 혈액을 추가합니다
heal(Hero h, int hp) //영웅이 가지고 있는 것을 지정 hp 추가)

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

더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트를 방문하세요:JAVA 비디오 튜토리얼

위 내용은 JAVA의 메소드 오버로딩 개념에 대한 자세한 설명 - 간단하고 이해하기 쉽습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제