객체 지향 패러다임의 핵심
객체와 객체간의 상호작용 그리고 관계를 형성해 나가는 것
오버라이딩 : 상속에서는 부모메서드의 재정의가 가능하다.
조상클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야하는 경우도 존재한다. 이럴 때 조상의 메서드를 오버라이딩한다 라고 한다.
class Cal2 extends Cal {
public Cal2() {
System.out.println("Cal2() 생성자 호출 - 자식");
}
public int minus(int n1, int n2) {
return n1 - n2;
}
@Override // 어노테이션 이라 부른다.
public int mutiply(int n1, int n2) {
if(n1 == 0 || n2 == 0) {
System.out.println("0을 입력하였습니다.");
}
return n1 * n2;
} // 부모메서드를 재정의
위의 예시처럼 부모 클래스의 minus 메서드를 자식 클래스에서 재정의 한 것을 오버라이딩이라고 한다.
오버라이딩의 조건
오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부(메서드 이름, 매개변수, 반환타입)는 조상의 것과 완전히 일치해야한다.
다만, 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다.
오버로딩과 오버라이딩
- 오버로딩 : 기존에 없는 새로운 메서드를 추가하는 것, new
- 오버라이딩 : 조상으로 부터 상속받은 메서드의 내용을 변경하는 것, change, modify
package ch99;
public class Parent {
void parentMethod() {}
}
class Child extends Parent{
void parentMethod() { // 오버라이딩
// .....
}
void parentMenthod(int i) {} // 오버로딩
void childMethod() {}
void childMethod(int i) {} // 오버로딩
void childMethod() {} // 에러, 중복정의 됨
}
'Java > Java 이론' 카테고리의 다른 글
[JAVA] 객체지향 언어 (0) | 2023.08.09 |
---|---|
[JAVA] switch 문 (0) | 2023.08.09 |
[JAVA] 상속 (0) | 2023.08.08 |
[JAVA] 배열 (0) | 2023.08.04 |
[JAVA] singleton 패턴 (0) | 2023.08.03 |