메서드 오버로딩(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 |