상속

Mia Lee·2021년 12월 9일
0

JAVA

목록 보기
68/98
package ex_inheritance;

public class Ex1 {

	public static void main(String[] args) {

		// Point2D 클래스 인스턴스 생성
		Point2D p = new Point2D();
		p.print2D();
		
		System.out.println("==============");
		
		// Point3D 클래스 인스턴스 생성
		Point3D p2 = new Point3D();
		p2.print3D();
		// 만약, 2차원 좌표를 사용해야할 경우
		// 별도로 Point2D 클래스의 인스턴스 생성 없이 
		// 상속받는 메서드 호출만으로 사용 가능
		p2.print2D();
		System.out.println("x = " + p2.x);
	}

}

// 2차원 좌표를 관리하는 Point2D 클래스 정의
class Point2D {
	
	// x, y 축 좌표 정보를 저장하는 멤버 변수 선언
	int x = 10;
	int y = 20;
	
	public void print2D() {
		
		System.out.println("2차원 좌표 x = " + x + ", y = " + y);
		
	}
	
}

// 3차원 좌표를 관리하는 Point3D 클래스 정의
// => 2차원 좌표 관리는 이미 Point2D 클래스에서 수행중이므로
//    Point2D 클래스를 상속받아 Point3D 클래스를 정의하면 코드 중복 제거됨
class Point3D extends Point2D {
	// x, y, z축 좌표 정보를 저장하는 멤버 변수 선언
//	int x = 10;
//	int y = 20;
	// => 이미 Point2D 클래스에서 x, y좌표를 관리하므로 z 좌표만 추가
	int z = 30;
	
	public void print3D() {
		
		System.out.println("3차원 좌표 x = " + x + ", y = " + y + ", z = " + z);
		// => 서브클래스 메서드 내에서 슈퍼클래스로부터 상속받은
		//    변수나 메서드에 자유롭게 접근 가능
		
	}
	
}
















0개의 댓글