/*
* 오버라이드 ( override )
* → 상속받은 자식클래스에서 부모클래스의 메서드를 재정의.
* → 메서드의 형태는 부모클래스의 메서드와 동일해야함.
* → 재정의 전의 동일한 이름의 메서드는 사용하지 못함.
* → 접근제한자의 범위가 좁아지는 건 안되고, 동일하거나 더 넓은 범위여야 함.
* → final 선언된 메서드는 오버라이드 할 수 없음.
*/
package ch03_override;
public class Point {
private int px;
private int py;
public Point() {
System.out.println("- Point() -");
this.px = this.py = 0;
}
public Point(int px, int py) {
System.out.println("- Point(int px, int py) -");
this.px = px;
this.py = py;
}
public int getPx() { return px; }
public void setPx(int px) { this.px = px; }
public int getPy() { return py; }
public void setPy(int py) { this.py = py; }
public void twoPoint() {
System.out.println("좌표 X : " + px + " - Y" + py);
}
public void info() {
System.out.println("좌표 X : " + px + " - Y" + py);
}
}
--------------------------------------------------------------------------------
//PointTriple
package ch03_override;
/*
* 상속 ( inheritance )
* - 기존 class 의 내용을 그대로 가져와서 새로운 class 를 정의하는 것입니다
* - 상속을 하더라도 접근제한자는 유지 됩니다
* - 자식클래스 객체를 생성할 때,
* 자식클래스 생성자에서 super() 를 사용하여 부모클래스의 생성자를 먼저 실행하고,
* 자식클래스의 생성자를 진행합니다
*
* 상속 방법
* - class 자식클래스 extends 부모클래스 {
*
* }
*/
public class PointTriple extends Point {
private int pz;
public PointTriple() {
super(); // 부모클래스 생성자 호출
System.out.println("- PointTriple() -");
}
public PointTriple(int px, int py, int pz) {
super(px, py);
System.out.println("- PointTriple(int px, int py, int pz) -");
this.pz = pz;
}
public void threePoint() {
System.out.println("좌표 X : " + getPx() + " - Y : " + getPy() + " - Z : " + pz);
}
public void info() {
System.out.println("좌표 X : " + getPx() + " - Y : " + getPy() + " - Z : " + pz);
}
}
--------------------------------------------------------------------------------
//PointTest
package ch03_override;
public class PointTest {
public static void main(String[] args) {
Point pointA = new Point(10, 20);
pointA.twoPoint();
System.out.println();
PointTriple ptA =
new PointTriple();
ptA.threePoint();
System.out.println();
PointTriple ptB =
new PointTriple(11, 22, 33);
ptB.threePoint();
ptB.info();
}
}