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 |
댓글