prjClass3.zip


9. 클래스 3 :상속

(1) 상속 예외

   1)생성자

   2) private

(2) 부모의 생성자를 호출 할 수 있다.

Super(….) – this(…)

단 주소만 다름

This 현재 자신의 주소 super 은 부모의 주소

Super.변수 또는 super.메서드() – this.변수 또는 메서드

Super도 참조 변수다

반드시 생성자 안에서만 호출 가능 일반 메서드 에서는 호출 불가능 

이것은 this 도 마찬가지!

"반드시 첫줄에 작성"

(3) 생성자의 호출 순서

(4) 상속은 확장의 개념이다.

(5) 자바는 단일상속만을 지원한다.

부모는 반드시 가장 기본적인 것만 가지고 있어야 된다.

- 상속 설계 과제

(6) 부모 클래스와 자식 클래스의 참조 관계

- 서로 다른 클래스는 참조할 수 없다.

- 단, 부모 자식관계는 참조 할 수 있다.

- 단, 부모만 자식을 참조 할 수 있다.

- 단, 부모는 자신이 물려준 범위 내에서만 참조가 가능하다. 

    1) 인스턴스가 결정되지 않았을 때

O - > A, B

    O(부모) A, B(자식)

A a1 = New A();

O a2 = new ?(); // 주소는 임시로 받음.

… 

A a3 = (A)a2 ; //캐스팅으로 넘겨주기.

    2) 여러 개의 자식 인스턴스를 배열로 관리하기 위해서

A a1 = new A();

B a1 = new B();

C a1 = new C();

D a1 = new D();

O o1[] = {a1, b1, c1, d1, new E()};


(7) 메서드의오버라이딩(Overriding)

메서드에서만 적용된다.

1) 재정의(부모로부터 상속받은 메서드를 고쳐서 사용)

2) 반드시 상속에서만 사용할 수 있는 문법

(8) 추상 클래스와 추상 메서드

1) 추상 클래스

 - 추상메서드를 하나 이상 가지고 있는 경우

 - abstract 키워드 사용

 - 인스턴스를 생성할 수 없다. // 자식에게만 물러줄 수 있는 용도로만 쓰겠다.

  

2) 추상 메서드

 - 내용은 없고 선언만 되어있는 메서드

Void a() {


}


Void a(); // 중괄호가 없는 건 쓸데없는 진입을 막겠다는 의미


// 혼란을 방지하기 위해서

   - Abstract 키워드 사용

Abstract void a();

//추상메서드는 앞에 Abstract 라는 키워드를 사용한다.

- 반드시 오버라이딩을 해야 한다.//이걸 상속 받는 자식클래스는


(9) final : class, method, variable

1) 변수 

Final inti=5;

I = 10;

Final int MAX_AGE = 100;

For(inti=0; i<MAX_AGE; i++) {

}



2) 메서드

Final void method(…) {

}

3) 클래스

Final class Classname{…}


(10) Object

'Java' 카테고리의 다른 글

[JAVA 정리] 11. Interface  (0) 2017.06.24
[JAVA 정리] 10. Package  (0) 2017.06.24
[JAVA 정리] 8. 클래스2  (0) 2017.06.24
[JAVA 정리] 7. Array 배열  (0) 2017.06.24
[JAVA 정리] 6. 매서드  (0) 2017.06.24

+ Recent posts