오버로딩 | 오버라이딩 |
기존에 없던 새로운 메서드를 정의 | 상속받은 메서드의 내용만 변경 |
오버로딩 | 오버라이딩 | |
매개변수 | 다름 | 동일 |
메서드 명 | 동일 | 동일 |
리턴값 | 다름 | 동일 |
✅ 오버로딩 OverLoading
- 하나의 클래스에 같은 이름의 메소드를 여러 개 정의하여 구현 가능
- 메서드에 사용되는 이름을 절약 가능
📌 오버로딩 조건
- 한 클래스 내에서 메서드 명이 동일
- 매개변수의 개수 / 타입이 달라야함
- 매개변수는 같고 리턴타입이 다른 경우 오버로딩이 성립 x
ex)
class OverLoading {
void print(int a){
System.out.println(a);
}
void print(String s){
System.out.println(s);
}
void print(int a, int b){
System.out.println(a*b);
}
void print(String s, int a){
System.out.println(s+a);
}
}
public class Test{
public static void main(String[] args){
OverLoading ol = new OverLoading();
ol.println(1);
ol.println("a");
ol.println(2,3);
ol.println("b",4);
}
}
출력)
더보기
1
a
6
b4
✅ 오버라이딩 Overriding
- 상속 받은 부모클래스에서 이미 정의된 메서드를 자식클래스에서 재정의
- @Override라는 어노테이션을 사용
- 오버라이딩의 대표적인 예) Object 클래스의 toString() 메서드
📌 오버라이딩 조건
- 부모 클래스 메서드 명과 동일
- 매개변수의 타입, 개수, 순서 일치
- 리턴 타입 동일
ex)
class Person{
void print(){
System.out.println("Person클래스의 print()메서드");
}
}
class Student extends Person{
@Override
public void print(){
System.out.println("Student클래스의 print()메서드");
}
}
public class Test{
public static void main(String[] args){
Person p = new Person();
Student st = new Student();
p.print();
st.print();
}
}
출력)
더보기
Person클래스의 print()메서드
Student클래스의 print()메서드
'Language > JAVA' 카테고리의 다른 글
[JAVA 기초 이론] 집합 Set (0) | 2023.05.22 |
---|---|
[JAVA 기초 이론] 스레드 Thread (0) | 2023.05.22 |
[JAVA 기초 이론] 예외처리 try / catch / finally (0) | 2023.05.21 |
[JAVA 기초 이론] 추상클래스 abstract (0) | 2023.05.19 |
[JAVA 기초 이론] 캡슐화 private / getter / setter (0) | 2023.05.18 |