본문 바로가기
Java

[Java] Inheritance(상속)

by 엘딘 2022. 4. 11.

1. 상위 클래스의 모든 멤버를 하위 클래스가 물려 받음

2. 재사용성과 코드의 간결성

3. 최상위 클래스: Object

4. 상속 키워드: extends

5. 상속 형식

public/final/abstract ChildClass extend ParentClass{
}

6. private 멤버를 제외한 상위 클래스의 모든 멤버 상속 가능

7. 동일한 이름의 변수가 상위/하위 클래스에 존재하면 상위 클래스의 변수는 가려짐

8. 패키지와 관련없이 상속 가능

 

Inheritance
public class inheritance {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ChildClass cc =  new ChildClass();
		
		cc.parentMethod();
		cc.childMethod();
		
        // protected 지정자로인해 접근 불가
	//	cc.setNumber(2); 	

	//	cc.name = "일지매"; 외부 접근 불가(protected 접근지정자 사용, 직접 상속받은 ChildClass에서만 접근 가능)

		ParentClass pc = new ParentClass();
		pc.parentMethod();
	//	pc.childMethod();	부모에서는 자식 클래스 사용 불가
	}
}

==================================================================
ParentClass parentMethod()
ChildClass childMethod
ParentClass parentMethod()

 

 

ParentClass

ChildClass에서 접근하기 위해서 setter와 getter 작성

public class ParentClass {
	
	private int number;		// 멤버변수
	protected String name;		// 자식 클래스에서는 접근 허용(외부에서는 접근 차단)
	
	public void parentMethod() {
		System.out.println("ParentClass parentMethod()");
	}

	protected int getNumber() {
		return number;
	}

	protected void setNumber(int number) {
		this.number = number;
	}
}

 

 

ChildClass
public class ChildClass extends ParentClass {
	
	private double height;
	
	public void childMethod() {
		
        //ParentClass에서 상속받음
		setNumber(1);
		
        //ParentClass에서 name의 지정자를 Protected로 적어 name으로만 상속 가능
		name = "홍길동";
		
		System.out.println("ChildClass childMethod");
		
	}
}

 

 

 

 

'Java' 카테고리의 다른 글

[Java] Interface  (0) 2022.04.11
[Java] Inheritance(상속)2  (0) 2022.04.11
[Java] HashMap  (0) 2022.04.10
[Java] Generic  (0) 2022.04.10
[Java] For  (0) 2022.04.10

댓글