티스토리 뷰
반응형
🚀 다형성에서 빠질 수 없는 개념
추상화는 어떠한 객체에 대한 공통 요소를 추출하는 과정 으로 배웠다.
그러나 구체적인 행위를 구현하는 것이 아닌 메소드의 이름만 명시하고 하위 클래스에서 그 행위를 구현하도록 JAVA
는 약속했다.
이렇게 행위를 구현화 하는데 필요한 절차가 오버로딩
, 오버라이딩
이라고 하는 것이다.
🌠 오버라이딩
Ride : (말, 자동차 등에) 타다
오버라이딩
에 대해서는 상속과 추상화를 배웠다면 익숙한 어노테이션 일것이다.
상위 클라스의 추상메소드를 하위 클라스에서 구체화
하는 과정으로 이해하면 충분하다 생각한다.
abstract class Animal {
void sound() {}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("이름을 알려주지 않아 공격적인 성향");
}
}
class freeNode {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound();
}
}
🌠 오버로딩
만일 같은 이름의 추상 메소드라도 입력되는 인자에 따라 행위의 결과가 다르다면 어떻게 해야할까?
Load : 물건을 싣다.
단어의 관점에서 바라본다면 추상 메소드에 물건을 적제한다
라는 의미를 가지며 여기서 물건을 메소드 인자
라고 생각하면 쉬울 것이다.
- 오버로딩 예시
abstract class Animal {
void sound() {}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("이름을 알려주지 않아 공격적인 성향");
}
//TODO: 오버로딩 : guest 인자를 넣어주었다.
public void sound(String guest) {
System.out.println("강아지가 " + guest + " 를 " + "반가워한다.");
}
}
class freeNode {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound();
//TODO: 이름을 알려주었다.
dog.sound("Michle");
}
}
추상 메소드의 이름을 한번 더 사용하고 싶지만 오버라이딩
할 경우 중복된 메소드 사용으로 에러가 발생하며
추상 메소드에 인자를 주입하여 좀더 다양한 결과를 반환하고 싶은 개발자를 위해 만들어진 개념이다.
추상 메소드는 변함이 없지만 하위 클래스에서 기존 추상 메소드에 인자를 주입하는 것으로 오버로딩
을 사용할 수 있는 것이다.
🧾 Reference
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
AWS textreck 테스트 전용 Entity (0) | 2023.06.25 |
---|---|
내부 클래스와 익명 클래스 차이 (0) | 2022.04.03 |
[JAVA] 인터페이스와 추상 클래스의 개념과 정리 (0) | 2022.04.02 |
[JAVA] 자바가 메모리를 사용하는 방식 (0) | 2022.03.27 |
[JAVA] 자바 프로그램의 개발과 구동 (0) | 2022.03.26 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그래프
- 스프링부트
- 백준
- Spring
- ajax
- java
- 디자인패턴
- Solid
- JPA
- 알고리즘
- kakao
- 자격증
- OOP
- CS
- 릿코드
- springboot
- Matlab
- C언어
- spring-cloud
- 자바
- 수학
- Algorithm
- 스프링
- 프로그래머스
- security
- interview
- nginx
- 면접
- docker
- 매트랩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함