|
|
제목:홍대입구
상속의 정의와 장점
상속이란
기존의클래스를 재사용하여 새로운 클래스를 작성
장점
1.적은양의 코드로 새로운 클래스 작성
2.코드를 공통적으로 관라
3.쿠드의 추가 및 변경이 용이
재사용성을 높이고 중복을 제거 생산성과 유지보수에 기여
class 클래스명 extends 상위클래스명{
//
}
조상클래스- 부모클래스,상위클래스,기반클래스
자손클래스-자식클래스,하위클래스,파생된클래스
class parent{ 추가변수 및 수식 a}
class child extends parent{ a상속 적용}
반대로
class parent{ a } b는 추가 X
class child extends parent{a , 추가변수 및 수식b}
유의점
생성자와 초기화 블럭은 상속x 멤버만 상속
자손클래스의 멤버 개수는 조상클래스보다 항상 같거나 많다.
extends 클래스명 으로 선언해준 것만 상속으로 받는다
class x extends a
class y extends a
둘은 a를 상속했을 뿐 x와y 는 서로 상관없음
class a{ 추가사항 }
class x extends a
a를 상속하니 추가사항 적용
class z extends x
x가 a를 상속하니 추가사항 적용
class y extends a
a를 상속하니 추가사항 적용
상속은 변수 뿐만 아닌 인스턴스 또한 상속된다.
클래스간의 관계 (포함관계)
class a{
타입 x;
타입 y; //x,y를 B b=new b(); 변경가능
타입 z;
}
class B{
타입 x;
타입 y;
}
클래스간의 관계 결정
상속관계:a는 b이다. A is a B
포함관계:a는 b를 가지고있다. A has a B
위에 문장을 넣어서 만들어보면 클래스 관계를 알수 있다.
단일상속(single inheritance)
C++에는 여러 클래스로 부터 상속을 받는 다중상속을 허용하지만 자바에서는 단일 상속만 허용
class a extends x,y{} 불가 오직x나 y만 상속
다중상속의 장점: 복합적인 기능을 가진 클래스를 쉽게 작성할수 있다.
단점: 복잡해지고 상속 클래스 이름이 비슷할 경우 구별 할수 없음
자바는 단일상속만을 허용함
Object클래스 모든클래스의 상위
class a extends Object{}
모든 상속의 조상의 끝판왕 Object클래스
toString(), equals(Object o)를 별도로 선언하지 않아도 나오는 이유가 Object클래스에 정의 되있기때문
'코딩 > Java' 카테고리의 다른 글
| 제어자(modifier) (0) | 2016.03.16 |
|---|---|
| 오버라이딩(overriding) (0) | 2016.03.16 |
| 변수의 초기화 (0) | 2016.03.14 |
| 생성자(constructor) (0) | 2016.03.14 |
| 메서드 오버로딩(method overloading) (0) | 2016.03.14 |