객체 지향 프로그래밍(Object Oriented Programming)3 - 상속(Inheritance)
2021. 10. 30. 15:37ㆍJava
상속
부모 클래스의 멤버를 자식이 물려받아 정의하여 코드의 재사용이 가능한 것
상속하는 클래스 - 부모 클래스, 수퍼 클래스, 상위 클래스
상속 받는 클래스 - 자식 클래스, 서브 클래스, 하위 클래스
특징
- 코드의 절감 - 기존 코드의 멤버를 물려받음
- 유지 보수성 향상 - 부모의 코드를 변경하면 자식에게 모두 적용
- 단일 상속 - 자식은 단 하나의 부모에게만 상속을 받을 수 있음
- extends키워드를 통해 상속 받음
- 상속의 관계는 is a 라고 한다 - Tiger is a Animal
- super카워드를 통해 조상 클래스 멘버에 접근
//부모 클래스
public class Animal{
void eat(){}
void poo(){}
void cry(){}
}
//extemds키워드로 상속 받음
//부모의 모든 속성을 가지고 있음
public class Tiger extends Animal{
void zigzag(){}
}
매서드 오버라이딩(Overriding)
조상 클래스에 정의된 매서드를 자식 클래스에 적합하게 수정하는 것
overwrite라고 생각하자! - 덮어 쓴다고 생각!
조건
- 매서드 이름이 같아야 함
- 리턴 타입이 같아야 함
- 매개 변수 개수, 타입, 순서 같아야 함
- 접근 제한자의 범위: 자식 >= 부모
- 자식은 부모보다 더 큰 예외 못함
//부모 클래스
public class Animal{
void eat(){}
void poo(){}
void cry(){
System.out.println("엉엉엉어어엉");
}
}
//자식 클래스
//부모 클래스의 cry매서드를 오버라이딩 하고 있다
public class Tiger extends Animal{
void cry(){
System.out.println("어흥~ 어흥~");
}
void zigzag(){}
}
'Java' 카테고리의 다른 글
객체 지향 프로그래밍(Object Oriented Programming)5 - 다형성(Polymorphism) (0) | 2021.10.30 |
---|---|
객체 지향 프로그래밍(Object Oriented Programming)4 - 캡슐화(Encapsulation) (0) | 2021.10.30 |
객체 지향 프로그래밍(Object Oriented Programming)2 - 추상화(Abstraction) (0) | 2021.10.26 |
객체 지향 프로그래밍( Object Oriented Programming)1 (0) | 2021.10.26 |