반응형
override : 덮어쓰다
Overriding : 조상의 method를 자신에 맞게 변경하는 것
class MyPoint {
int x;
int y;
public String toString() {
return "x :" + x + ", y :" + y;
}
}
class MyPoint3D extends MyPoint {
int z;
public String toString() { // overriding
return "x :" + x + ", y :" + y + ", z :" + z;
}
}
부모 class인 MyPoint에 있는 toString() 함수를
자식 class인 MyPoint3D에서 다르게 변경해서 사용할 수 있다.
Overriding 조건
- 선언부는 변경불가. 구현부{ }를 변경해서 사용.
- 접근제어자를 조상 class의 method보다 좁은 범위로 변경할 수 없다.
- 예외exception는 조상 class의 method보다 많이 선언할 수 없다.
Overriding을 이용해 간단히 적기
public class Overriding {
public static void main(String[] args) {
MyPoint3D myP3D = new MyPoint3D(3, 7, 5);
System.out.println(myP3D); // 출력 -> x :3, y :5, z :7
}
}
class MyPoint {
int x;
int y;
public String toString() {
return "x :" + x + ", y :" + y;
}
}
class MyPoint3D extends MyPoint {
int z;
MyPoint3D(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
public String toString() { // overriding
return "x :" + x + ", y :" + y + ", z :" + z;
}
}
Overloading 과의 차이
- Overloading은 method 이름만 같고 매개변수 갯수를 달리해 아예 다른 새로운 method를 정의하는 것(new).
- Overriding은 같은 method이지만 변형해서 사용하는 것(change).
반응형
'☕ 자바 JAVA > ☕ 클래스와 함수 Class & Method' 카테고리의 다른 글
[JAVA]package & class path. cmd로 java file실행과 환경변수 설정. (0) | 2024.03.30 |
---|---|
[JAVA]참조변수 super & 조상 생성자 super() (0) | 2024.03.27 |
[JAVA]단일상속 Single Inheritance & Object class (0) | 2024.03.25 |
[JAVA]포함 composite (1) | 2024.03.22 |
[JAVA]상속 Inheritance (1) | 2024.03.13 |