상속의 특징
1. 재사용성
2. 확장성
(80% 이상의 기능이 중복되지 않으면 상속하지 않는편이 메모리관리에 좋음)
(A is B 의 형태가 될 경우에만 상속 사용)
3. extends : class A extends B {}
A 클래스는 B 클래스를 상속한다.
A 클래스는 B 클래스의 변수 및 메소드를 사용할 수 있다.
4. 클래스 간의 관계
B : 부모, 상위, super
A : 자식, 하위, sub
5. 클래스 간에는 단일 상속만 가능함
class A extends B
class A extends B, C (불가능) - 다중상속.. (타 언어는 가능한 언어도 있으나 Java는 다중상속 미지원)
6. 상속은 계층구조로 이루어져 있음 (트리)
class A extends B
class B extends C
class C extends E
class D extends E
E <- root (최상위 부모클래스) (Object)
C D
B
A
7. 자바의 모든 클래스의 최상위 클래스는 java.lang.Object 클래스이다. (별도의 import를 하지 않아도 사용 가능)
8. 부모의 변수 또는 메서드를 마치 자신에게 선언된것처럼 사용할 수 있다.
단, 보여야만 사용이 가능함. (접근제한자의 영향을 받는다, private)
9. 클래스가 extends를 명시적으로 하는 경우에는 Object 클래스를 직접 상속하지 않는다.
10. 부모클래스를 접근할 때 사용하는 키워드 (super)
- super.변수 : 부모의 변수 접근
- super.메서드 : 부모의 메서드 접근
- super([값1, ...]) : 부모의 생성자 호출
생성자 내에서 첫번째 구문이 되어야 한다. (첫번째 줄이어야 한다)
생성자 내에서만 호출이 가능하다.
11. 오버라이딩 (다형성의 특성 중 하나) - 상속관계에서만 발생
재정의 : 내용을 다시 정의해서 사용함
필수 동일 : 반환타입, 메서드명, 매개변수의 타입 개수 (동일한 선언부)
접근제한자 : 부모클래스의 접근범위보다 좁으면 안된다.
public(공용) > protected > default(접근제한자가 선언이 안된경우) > private(자신만)
오버로딩 : 같은이름, 다른매개변수가 필수, 반환타입은 같아도 달라도 상관없음
Java - 객체의 형변환 - 명시적 형변환 (0) | 2018.09.28 |
---|---|
Java - 객체의 형변환 - 묵시적 형변환 (0) | 2018.09.28 |
Java - 생성자와 this (0) | 2018.09.28 |
Java - String 클래스 활용하기 (문자열 연산 속도 비교) (0) | 2018.09.28 |
Java - 문자형의 형변환 (0) | 2018.09.28 |
댓글 영역