728x90
반응형
안녕하세요. 스마트 팩토리입니다
자바 중급 027. 오버라이딩(overriding) 에 대해 알아보겠습니다.
1.오버라이딩(overring)
가. 오버라이딩
- 상속 받은 조상의 메소드를 해당 클래스에 맞게 변경하는 것
- 조상클래스에서 상속받은 메서드를 자손한테 맞게끔 구현부를 수정하는 것
- 상속을 받을때 원하는 부분만 상속을 받을 수 없으며, 필요하다면 오버라이딩을 한다.
나. 오버라이딩 예시
<<OverrideTest.java 실행 클래스 >>
부모 클래스의 멤버 변수는 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());
부모클래스의 메소드 값이 아닌 자식 클래스의 메소드 값이 출력되는 것을 볼 수 있습니다.
<<String 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());
}
}
728x90
반응형
'Java' 카테고리의 다른 글
자바 중급 029. 참조 변수 super 조상클래스 참조변수 (0) | 2021.09.14 |
---|---|
자바 중급 028. 오버라이딩(overriding) 조건-재정의- Object 클래스 toStirng ()메소드 (0) | 2021.09.13 |
자바 중급 026. 상속, 오브젝트 클래스 (object 클래스)- 모든 클래스의 조상 클래스 (0) | 2021.09.12 |
자바 중급 025. final 필드 (0) | 2021.09.11 |
자바 중급 024. 상속(inheritance) -부모클래스 , 자식클래스 관계(2) (0) | 2021.09.10 |
댓글