※ 시작하기 앞서 java study 카테고리 자료는 YOUTUBE에 남궁성 강사님의 자바의 정석 영상을 가지고
공부한 내용을 정리한 것이며 상업적 목적은 전혀 없음을 알립니다.
메서드 오버 라이딩
상속받은 조상의 메서드를 자신에 맞게 변경하는 것
오버 라이딩의 조건
1. 선언부가 조상 클래스의 메서드와 일치해야 한다.
선언부(반환 타입, 메서드 이름 , 매개 변수 목록)
2. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
class Point {
int x ;
int y ;
String getLocation() {
return "x:" + x +",y :" + y;
}
}
class Point3D extends Point{ // 상속 클래스
int z;
String getLocation() {
return "x:" + x +",y :" + y + ", z :" + z; // 조상 메서드를 오버라이딩
}
}
Ex)
class MyPoint3 extends Object {
int x;
int y;
MyPoint3(int x, int y){
this.x = x;
this.y = y;
}
// object클래스의 toString()오버 라이딩
public String toString() { // toString() 선언부와 똑같이 쓴다.
return "x:"+x+", y:"+y;
}
}
public class OverrideTest {
public static void main(String[] args) {
MyPoint3 p = new MyPoint3(3,5);
// p.x = 3;
// p.y = 5;
System.out.println(p);
// System.out.println(p.toString());
// System.out.println("p.x="+p.x);
// System.out.println("p.y="+p.y);
}
}
Console
x:3, y:5
오버 로딩 vs 오버 라이딩
오버 로딩(overloading) 기존에 없는 새로운 메서드를 정의하는 것 (new)
오버 라이딩(overriding) 상속받은 메서드의 내용을 변경하는 것 (change, modify)
▶참고자료 https://youtu.be/oJlCC1 DutbA
'java study' 카테고리의 다른 글
#26 패키지 (package) (0) | 2022.06.12 |
---|---|
#25 참조 변수 super (0) | 2022.06.12 |
#23 단일 상속(Single Inheritance) (0) | 2022.06.12 |
#22 포함(composite) 관계 (0) | 2022.06.12 |
#21 상속(Inheritance) (0) | 2022.06.11 |