Language/Java

13. Java 상속

유가엘 2020. 3. 7. 23:51

lesson14_OOP_Extends.zip
0.00MB

상속이란?

기존에 만들어진 클래스의 기능 중 부모클래스의 속성과 기능을 이용할 수 있습니다.

예시 ) 할아버지 운영 -> (비법계승) -> 아빠 음식점 -> (비법계승) -> 아들 음식점

 

상속의필요성

기존에 검증된 소스 를 이용해서 빠르고 쉽게 새로운 소스를 추가 할 수 있습니다.

 

상속구현

클래스 생성 시 , extends 부모 클래스로 생성합니다.

@Override 를 사용하지 않더라도 부모 클래스에 있는 메소드를 불러서 사용할 수 있습니다.

package lession14_OOP_Extends;

public class SonShop extends FatherShop {
	
	
	}
}

상속의 특징

매서드 오버라이드(Override)

부모클래스의 존재하는 기능을 자식클래스에서 재정의해서 사용합니다.

만약 부모클래스 속성이 private 일 경우, 접근할 수 없습니다.

package lession14_OOP_Extends;

public class FatherShop {
	String menu;
	
	public FatherShop() {
		// TODO Auto-generated constructor stub
	}

	public void showMenu() {
		System.out.println("김밥");
		System.out.println("떡볶이");
		System.out.println("라면");
	}
	
	public void getFatherShopName() {
		System.out.println("아빠손맛");
	}
	
}
package lession14_OOP_Extends;

public class SonShop extends FatherShop {
	String addMenu;

	// 생성자는 
	public SonShop() {
		// TODO Auto-generated constructor stub
	}
	
	
	//	@Override 상위의 메소드를 불러서 추가할 수 있습니다.
	@Override
	public void showMenu() {
		super.showMenu();
		// super : 상위클래스의 값을 가져옵니다.
		System.out.println("추가된메뉴\t"+addMenu);
	}

}
package lession14_OOP_Extends;

public class Main {
	public static void main(String[] args) {
		
		FatherShop fatherShop = new FatherShop();
		fatherShop.showMenu();
		
		System.out.println("-------------------------");
		
		SonShop sonShop = new SonShop();
		sonShop.showMenu();

		System.out.println("-------------------------");

		sonShop.addMenu="궁중떡볶이";
		sonShop.showMenu();
		
		System.out.println("-------------------------");
		
		sonShop.getFatherShopName();
		sonShop.getSonShopName();
	}
}