티스토리 뷰
1. 오버로딩(Overloading)
-기존에 없는 새로운 메서드를 정의하는데 같은 이름을 가지는 함수를 정의하는것.
오버로딩은 연산자 , 메서드 오버로딩이 있다.
#성립하기 위한 조건 3가지
- 메서드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 반환 타입은 영향 없다.
예시 코드)
void running(int speed){
System.out.println(speed);
}
void running(int speed, String shoes){
System.out.println(speed+shoes);
}
이와 같이 running 으로 같은 메서드임에도 불구하고 매개변수가 다르게 들어가는 경우가 있다.
이러한 경우 메서드의 이름을 다르게 하면 해결할 수 있지만,
같은 기능을 하는 코드를 다르게 정의하는 것은 좋은 코딩이 아니다.
이러한 것을 방지하기 위해 JAVA언어에서 제공하는 기능이 Overloading이다.
2. 오버라이딩(Overriding)
- 부모함수를 자식이 똑같이 사용하여 부모함수를 쓰지 않고 자식의 함수를 사용하는 것.
예시 코드)
class Bird{
public String name;
public void who(){
System.out.println("이 새의 이름은 "+name+"입니다.");
}
}
class Pigeon extends Bird{
public void who(){
System.out.println("이 새의 이름은 "+name+" 이고 색깔은 "+color+" 입니다.);
}
}
위와 같이 Pigeon class의 who method는 상위클래스에서 적용된 who method에 color 정보까지
출력하고 있다는 것을 알 수 있습니다.
즉 위와 같이 같은 이름의 method이지만 상위클래스의 메서드를 하위클래스에서 다시 덮어쓰는 방식을
overriding 이라고 한다.
# overloading과 overriding은 JAVA에서 다형성을 구현하는 데 핵심이 되는 기능이다.
이러한 기능을 잘 사용하면 JAVA의 OOP적인 특성을 더 강화할 수 있다는 장점이 있다.
'개발 > 이론 공부' 카테고리의 다른 글
배열 (Array), 연결리스트 (LinkedList) 란? (0) | 2022.11.09 |
---|---|
자료구조와 알고리즘이란? (0) | 2022.11.08 |
트러블 슈팅(Troble shooting) 이란? (0) | 2022.11.04 |
SQL 이란? (1) | 2022.11.03 |
Cache Hit Ratio란? (2) | 2022.11.02 |
댓글