티스토리 뷰

깊게 파면 한도 끝도 없겠지만 책을 바탕으로 가볍게

알고는 있지만 안쓰다보면 잊게 되는 내용들만 정리해봐야겠다.


class A - class B extends A - class C extends B  (상위클래스 - 하위클래스)

> 'A는 B다' 가 성립하면 상속

> class C에서 class B의 메소드를 오버라이드 하지 않고 그대로 쓰고 싶다면

- super.bclassMethod();

> 모든 클래스는 extends Objects

- Object 클래스를 상속받고 있다.

- 따라서 Object 클래스의 메소드를 사용하거나 오버라이드 할 수 있다.

> 이중상속 불가능.

- class Cclass B를 상속받고 있는데 어디서 굴러나온 class D를 또 상속 할 수 없다.

* 처리 순서(?)

- 호출 : C → B → A → Object

- 처리 : Object → A → B → C

- 어떻게 호출할까? : 컴파일러에서 자동으로 super(); 생성


abstract class A - class B extends A

> 추상메소드 (abstract void ... ();)를 쓰려면 추상클래스를 만들어야 한다. (추상메소드가 아닌 메소드도 추상클래스에 들어감)

> 추상클래스에서 생성한 메소드는 이를 상속받는 클래스가 반드시 써야한다. (안그러면 컴파일할 때 에러)

> 메소드의 바디가 없다.


interface class A - class B implements A

> 추상클래스와 사용법은 동일하다.

> 다만, 인터페이스는 여러개 상속받을 수 있다. ( implements A, B, C, D... )



댓글