반응형

제목:홍대입구

 

상속의 정의와 장점

 

상속이란

기존의클래스를 재사용하여 새로운 클래스를 작성

 

장점

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

+ Recent posts