본문 바로가기
Java/Java_basic

Step15. 상속과 Private 접근자

by Mr.DonyStark 2023. 9. 25.

□ 상속

 ○ 기존에 만들어진 클래스의 기능을 상속받아서 새로운 클래스를 쉽게 만들 수 있는 것
 ○ 부모 클래스를 상속받은 자식 클래스는 부모 클래스의 속성과 기능도 이용할 수있음
 ○ 부모클래스로부터 속성과 기능을 상속받아 생성된 자식클래스를 활용하여 생성된 객체는 부모/자식클래스의 속성과 기능을 활용할 수 있음
 ○ 상속의 필요성 : 기존의 검증된 Class를 이용해서 빠르고 쉽게 새로운 Class를 만들 수 있음
   ex) 할아버지 G음식점 개업 - 아버지 G음식점 인수 및 메뉴 개발 - 아들 G음식점 인수 및 기존 메뉴개선&신메뉴 개발
 ○ exten 키워드를 이용해서 상속 구현
 ○ Java는 단일상속만 가능함

□ 부모클래스의 private 접근자

 ○ 자식클래스는 부모클래스의 모든 자원을 사용할 수 있지만, 부모클래스의 private 접근자의 속성과 메서드는 자식클래스에 상속할 수 없음

 

예제1) 부모클래스 생성 및 메서드 지정

package person_test;

public class Parent_Class {
	
	//부모 클래스 생성자
	public Parent_Class() {
		System.out.println("부모클래스 생성자");
	}
	//부모 클래스 메서드
	public void parentFun() {
		System.out.println("하하하하");
	}
	//Private 메서드
	//자식클래스는 부모클래스의 모든 자원을 사용할 수 있지만, private 접근자의 속성과 메서드는 사용할 수 없음
	private void privateFun() {
		System.out.println("소곤소곤");
	}

}

예제1-1) 자식클래스 생성 및 메서드 지정

package person_test;

//자식 클래스  +  부모클래스로부터 상속 
//	public class 자식클래스 extends 부모클래스{}
public class Child_Class extends Parent_Class{
	
	//자식클래스 생성자
	public Child_Class() {
		System.out.println("자식클래스 생성자, 부모클래스로부터 상속받음");
	}
	public void childFun() {
		System.out.println("호호홓호");
	}
	
}

예제1-1-1) 자식클래스를 활용하여 객체 생성 및 부모클래스의 메서드 활용가능

package person_test;

public class Parent_Child_Main {
		public static void main(String[] args) {
			//객체 생성 : 자식클래스를 활용
			Child_Class New_Pc = new Child_Class();
			
			//자식클래스를 활용하여 객체를 생성하였어도
			//부모클래스에서 지정한 메서드 활용가능
			//자식클래스에서 지정한 메서드 또한 활용가능
			New_Pc.parentFun();
			New_Pc.childFun();
			
		}
}
//메인 클래스 실행시 부모클래스 생성자부터 출력되는 것을 보아 자식클래스가 부모클래스의 속성/기능을 상속받았다는 것을 알 수 있음