오버라이딩
오버라이딩은 상속받은 메소드를 확장하기 위해 사용한다.
오버라이딩 메소드는 부모 클래스 메소드와 메소드명, 리턴타입, 매개변수가 같아야한다.
메소드 호출시 오버라이딩 메소드가 부모 클래스 메소드보다 우선시된다.
package sample;
public class Sample
{
public static void main(String[] args)
{
Point3D a = new Point3D();
a.x = 10;
a.y = 20;
a.getPoint();
}
}
class Point
{
int x, y;
void getPoint()
{
System.out.println("x : " + x + ", y : " + y);
}
}
class Point3D extends Point
{
int z;
void getPoint()
{
System.out.println("x : " + x + ", y : " + y + ", z : " + z);
}
}
super
오버라이딩 이후 부모클래스에 있는 원본을 호출하는 경우 쓰임
package sample;
public class Sample2
{
public static void main(String[] args)
{
Child a = new Child();
a.printChild(50);
}
}
class Parent
{
int x = 10;
String parentMethod()
{
return "parent";
}
}
class Child extends Parent
{
int x = 20;
String childMethod()
{
return "child";
}
void printChild(int x)
{
System.out.println("x : " + x);
System.out.println("this.x : " + this.x);
System.out.println("super.x : " + super.x);
}
}
'자바 JAVA' 카테고리의 다른 글
상수는 왜 final 예약어로 선언하나요? - 자바 기초 (0) | 2021.06.09 |
---|---|
생성자 매개변수 다 넘겼는데 객체 만들 때 오류? super() 예약어! (0) | 2021.06.09 |
원, 삼각형 좌표 찍기 예제 - 자바 기초 (0) | 2021.06.07 |
자바 공부 잊지말아야 할 내용 정리 1편 (0) | 2021.06.06 |
2차원 배열을 이용한 예제 풀이 - 자바 기초 (0) | 2021.05.26 |