본문 바로가기

AWS CLOUD FRAMEWORK/Java

[Day12] Ex01

package inheritance;

// heritage : 유산

class Pos2D {				// 슈퍼클래스 (부모클래스, 상위클래스)
	private int x, y;
	
	public Pos2D(int x, int y) {
		this.x = x;
		this.y = y;
	}
	public void show() {
		System.out.println("x : " + x + ", y : " + y);
	}
	public int getX() {
		return x;
	}
	public int getY() {
		return y;
	}
}

class Pos3D extends Pos2D {	// Pos2D의 내용을 상속받아서, 추가속성과 기능을 작성한 새로운 클래스
							// 서브 클래스 (자식클래스, 하위클래스)
	private int z;
	
	public Pos3D(int x, int y, int z) {	// 서브클래스는 슈퍼클래스의 생성자를 반드시 호출해야만 한다
//		this.x = x;
//		this.y = y;
		super(x, y);	// Pos2D(int x, int y)	// 생성자의 첫번째 줄에서 호출
		this.z = z;
	}
	
	@Override			// 물려받은 기능(함수)의 형식은 유지하면서, 내용을 새로 작성한다
	public void show() {
		System.out.printf("x : %d, y : %d, z : %d\n", getX(), getY(), z);
	}
	
	public int getZ() {
		return z;
	}
}

public class Ex01 {
	public static void main(String[] args) {
		
		// extends : 기존의 클래스의 내용을 물려받아서(inheritance) 
		// 			  추가적인 속성과 기능을 만들어서 개념을 확장한 새로운 클래스를 작성한다
		
		Pos2D ob1 = new Pos2D(3, 4);
		ob1.show();

		Pos3D ob2 = new Pos3D(2, 3, 5);
		// Pos3D 호출 -> Pos2D(x, y) -> Pos3D(z) -> 객체 생성 완료
		ob2.show();
		
	}
}

'AWS CLOUD FRAMEWORK > Java' 카테고리의 다른 글

[Day12] Ex03  (0) 2023.04.05
[Day12] Ex02  (0) 2023.04.05
[Day11] Quiz2  (0) 2023.04.05
[Day11] Quiz1  (0) 2023.04.05
[Day11] VendingMachine  (0) 2023.04.05