자바 중급 027. 오버라이딩(overriding)-재정의

자바 중급 027. 오버라이딩(overriding)-재정의

반응형

안녕하세요. 스마트 팩토리입니다

자바 중급 027. 오버라이딩(overriding) 에 대해 알아보겠습니다.

1.오버라이딩(overring)

가. 오버라이딩

- 상속 받은 조상의 메소드를 해당 클래스에 맞게 변경하는 것

- 조상클래스에서 상속받은 메서드를 자손한테 맞게끔 구현부를 수정하는 것

- 상속을 받을때 원하는 부분만 상속을 받을 수 없으며, 필요하다면 오버라이딩을 한다.

나. 오버라이딩 예시

<>

부모 클래스의 멤버 변수는 x,y 이고

자식 클래스의 멤버 변수는 z

메인 클래스에서 자식 클래스의 객체를 활용하여 인스턴스 값을 5,10,20을 지정하고 출력을 해 보니

부모 클래스의 메소드 부분만 실행되어 해당 부모 클래스로 상속 받은 멤버 변수 값만 출력하게 됩니다.

그래서 자식 클래스에서 주석 부분을 오버라이딩 하게 됩니다.

package ex07_01;

class PapaPoint{

int x;

int y;

String getLocation() {

return "(x,y) = "+"( "+x+","+ y + ")";

}

}

class SonPoint extends PapaPoint{

int z;

// String getLocation() {

// return "(x,y,z) = "+"( "+x+","+ y +","+z+ ")";

// }

}

public class OverrideTest {

public static void main(String[] args) {

SonPoint p1=new SonPoint();

p1.x=5;

p1.y=10;

p1.z=20;

System.out.println(p1.getLocation());

}

<< 오보라이딩 후 >>

자식 클래스의 메소드 부분을 부모 클래스에 첨가하여 작성하였습니다. 그 결과

System.out.println(p1.getLocation());

부모클래스의 메소드 값이 아닌 자식 클래스의 메소드 값이 출력되는 것을 볼 수 있습니다.

<>

package ex07_01;

class PapaPoint{

int x;

int y;

String getLocation() {

return "(x,y) = "+"( "+x+","+ y + ")";

}

}

class SonPoint extends PapaPoint{

int z;

String getLocation() {

return "(x,y,z) = "+"( "+x+","+ y +","+z+ ")";

}

}

public class OverrideTest {

public static void main(String[] args) {

SonPoint p1=new SonPoint();

p1.x=5;

p1.y=10;

p1.z=20;

System.out.println(p1.getLocation());

}

}

반응형

from http://sf2020.tistory.com/87 by ccl(A) rewrite - 2021-09-12 23:26:52