Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- 인텔리제이
- 코딩테스트
- 도커
- 이직
- 주니어
- Linux
- 백엔드
- 배열
- HTTP
- 해시맵
- bfs
- dfs
- 스프링
- 스타트업
- 스프링 부트
- 문자열
- IntelliJ
- spring boot
- spring
- 스프링부트
- 구현
- Java
- 구름LEVEL
- 프로그래머스
- docker
- 해결
- HashMap
- 개발자
- 명령어
Archives
- Today
- Total
마이의 개발 블로그
[Java] 오버라이딩(overriding)과 오버로딩(overloading) 본문
반응형
오버라이딩(overriding)
- 부모 클래스로부터 상속받은 메서드의 내용을 재정의하여 사용하는 것을 의미함 (=overwrite)
- 자녀 클래스에서 오버라이딩되는 메서드는 조상 클래스의 메서드와 이름, 매개변수, 반환타입이 같아야 함
오버라이딩 주의점
- 자녀 클래스의 메서드는 조상(부모) 클래스의 메서드보다 접근자의 범위가 좁을 수 없음
*조상 클래스의 메서드가 protected일 때, 자녀 클래스의 메서드는 protected 또는 public만 가능함
- 자녀 클래스의 메서드는 조상(부모) 클래스의 메서드보다 예외의 수가 많을 수 없음
*조상 클래스의 메서드에 IOException 선언 시, 자녀 클래스의 메서드는 Exception이 될 수 없고 그 반대는 가능함
- 오버라이딩시 인스턴스 메서드와 static 메서드를 서로 변경할 수 없음
//오버라이딩 예시 - Animal 클래스를 상속받아 재정의된 Dog, Cat 클래스의 sound() 메서드
package overriding;
public class Animal {
void sound() {
System.out.println("동물이 내는 소리");
}
}
----------------------------------------------
package overriding;
public class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍");
}
}
-----------------------------------------------
package overriding;
public class Cat extends Animal{
@Override
void sound() {
System.out.println("야옹");
}
}
오버로딩(overloading)
- 한 클래스 내에서 같은 이름으로 다른 기능을 수행하는 메서드를 정의하는 것
- 메서드의 이름이 같을 때 매개변수의 수와 타입을 다르게 선언하여 오버로딩을 구현할 수 있음 (반환타입은 상관없음)
- 같은 기능을 수행하는 메서드들의 이름을 절약할 수 있다는 장점이 있음
//오버로딩 예시
int add(int a, int b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
long add(long a, long b) { return a + b; }
반응형
'개발지식 > Java' 카테고리의 다른 글
[Java] Cipher(AES + CBC + PKCS5) 암호화, 복호화 예제 (시크릿키, 초기화 벡터가 원문인 경우) (0) | 2024.04.03 |
---|---|
[Java] 기상청 단기예보 API 데이터 가공하기 (JSONParser) (0) | 2022.02.16 |
Comments