본문 바로가기
java

[java] 메서드 오버로딩, 매서드 오버라이딩, 가변인자

by 개발LOG 2024. 6. 4.

메서드 오버로딩(Overloading)

  • 리턴값이나 인자가 다른 여러 메서드를 동일한 이름으로 선언하는것.

메서드 오버로딩 예시:

class Animal {
    String name;

    void setName(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    void sleep() {
        System.out.println(this.name + " zzz");
    }
}

class HouseDog extends Dog {
    void sleep() {
        System.out.println(this.name + " zzz in house");
    }

    void sleep(int hour) {
        System.out.println(this.name + " zzz in house for " + hour + " hours");
    }
}

public class Sample {
    public static void main(String[] args) {
        HouseDog houseDog = new HouseDog();
        houseDog.setName("happy");
        houseDog.sleep();  // happy zzz in house 출력
        houseDog.sleep(3);  // happy zzz in house for 3 hours 출력
    }
}

메서드 오버라이딩(Overriding)

  • 부모 클래스의 메서드를 자식 클래스가 동일한 형태로 또다시 구현하는 행위를(메서드 덮어쓰기)

메서드 오버라이딩 예시:

class Animal {
    String name;

    void setName(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    void sleep() {
        System.out.println(this.name + " zzz");
    }
}

class HouseDog extends Dog {
    void sleep() {
        System.out.println(this.name + " zzz in house");
    }
}

public class Sample {
    public static void main(String[] args) {
        HouseDog houseDog = new HouseDog();
        houseDog.setName("happy");
        houseDog.sleep();  // happy zzz in house 출력
    }
}

 

가변 인자(Variable arguments)

  • 인자의 수가 유동적인 메서드
  • String... msg와 같이 가변인자를 사용.

'java' 카테고리의 다른 글

[java] HashMap  (0) 2024.07.22
[java] 제네릭스, ArrayList  (0) 2024.07.22
[java] StringBuffer, StringBuilder, String 차이  (0) 2024.07.22
[java] 배열  (0) 2024.06.04
[java] 클래스, 메서드, 변수, 상수명 규칙  (0) 2024.06.04