JAVA

[Java] 상속의 장점

sagesse2021 2021. 10. 29. 18:36
반응형
public class Ex2 {

	public static void main(String[] args) {
		/*
		 * 상속의 장점
		 * 1. 코드 재사용성이 증가
		 * 2. 코드의 유지보수성이 용이해짐
		 */
		 
		Point3D p3 = new Point3D();
		p3.print3D();
	}

}
//2차원 좌표(x, y)를 관리하는 Point2D 클래스
class Point2D {
	int x = 10;
	int y = 20;
	
	// 2차원 좌표값을 출력하는 print2D() 메서드 정의
	public void print2D() {
		System.out.println("x좌표 = " + x + ", y좌표 = " + y);
		// 슈퍼클래스의 메서드를 수정하게 되면
		// 서브클래스인 Point3D 클래스에서 수정 내용에 대한 적용을 받을 수 있음
		
	}
}


//3차원 좌표(x, y, z)를 관리하는 Point3D 클래스
//=> x, y 좌표 관리 기능은 기본적으로 Point2D 클래스와 중복되므로 상속
class Point3D extends Point2D {
	int z = 30;
	
	// 3차원 좌표값을 출력하는 print3D() 메서드 정의
	public void print3D() {
//		System.out.println("x좌표 = " + x + "y좌표 = " + y + "z좌표 = " + z);
		// x좌표, y좌표는 슈퍼클래스인 Point2D 클래스의 
		// print2D() 메서드가 출력하므로 해당 메서드를 호출해서 출력하고
		// 자신의 클래스의 멤버인 z좌표만 별도로 출력하면 코드의 재사용이 가능함
	print2D();
	System.out.println("z좌표 = " + z);
	}
}
/*
x좌표 = 10, y좌표 = 20
z좌표 = 30
*/
반응형

'JAVA' 카테고리의 다른 글

[Java] 상속에서의 생성자  (0) 2021.10.30
[Java] has-a 관계(포함) vs is-a 관계(상속)  (0) 2021.10.30
[Java] 상속(Inheritance)  (0) 2021.10.29
[Java] 싱글톤 디자인 패턴  (0) 2021.10.29
[Java] static 메서드  (0) 2021.10.29