상속이란?
기존에 만들어진 클래스의 기능 중 부모클래스의 속성과 기능을 이용할 수 있습니다.
예시 ) 할아버지 운영 -> (비법계승) -> 아빠 음식점 -> (비법계승) -> 아들 음식점
상속의필요성
기존에 검증된 소스 를 이용해서 빠르고 쉽게 새로운 소스를 추가 할 수 있습니다.
상속구현
클래스 생성 시 , 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();
}
}
'Language > Java' 카테고리의 다른 글
15. Java 추상클래스 (0) | 2020.03.08 |
---|---|
14. Java 인터페이스와 다형성 (0) | 2020.03.08 |
12. Java 데이터 은닉과 접근 제어자 (0) | 2020.03.06 |
11. Java Static 과 패키지 (0) | 2020.03.06 |
10. Java 생성자와 소멸자 그리고 This (0) | 2020.03.06 |