상세 컨텐츠

본문 제목

Java - 상속, 추상클래스, 인터페이스, 객체의 형변환, 접근제한자

개발/Java

by 뉴에이스 2018. 9. 28. 10:45

본문

상속의 특징

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(자신만)

    오버로딩 : 같은이름, 다른매개변수가 필수, 반환타입은 같아도 달라도 상관없음

 

관련글 더보기

댓글 영역