☕ 자바 JAVA/☕ 클래스와 함수 Class & Method

[JAVA]오버라이딩 Overrinding

뉴이 NUEY 2024. 3. 27. 02:29
반응형

 

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).

 

반응형