복습
과제
- 다이어그램을 미리 준비하면 서로 소통하기 편해진다.(팀프로젝트 시)
inheritance 시 염두해야 할 사항
> modifier (field)
- private
inheritance 관계 없이 자신만 접근 가능
- protected
같은 package + sub class들은 접근 가능
> override (method)
- 기존 method를 교체하고 싶을 때 사용
- super class에 있는 형태(return, parameter type)와 똑같이 구현
final
keyword: override 불가능
abstract
keyword: subclass에서 override 해야함
Anootation
@Override
- 명찰을 부착하여 하단 코드의 역할을 정의
- meta programming
> constructor
> abstract
- inheritance 위한 super class
- 일반 class와 다른 점 3가지
- class에 abstract 표시
- object 생성 불가능
- abstract method 생성 가능
- abstract method
- abstract method와 일반 method 구현
- abstract method는 이름은 아는데 구체적인 구현내용이 없을 때
- subclass에서 abstract method 구현을 반드시 해야함
polymorphism
> upcasting
static type generate
IPhone13 m1 = new IPhone13("black");
dynamic type generate
Mobile mo1 = new IPhone13("black");
+ 디자인패턴
> downcasting
Hwang a = new Hwang();
Teacher t1 = a;
Hwang c = (Hwang) t1;
c.dring();
c.game();
c.teach();
instanceof
b instanceof Hwang
multiple inheritance
- inheritance에서 super class는 무조건 1개만 가능
- class는 종류가 여러 가지가 있다.
= class만 있는게 아니라 다중상속을 위한 또 다른 class가 존재한다.
= interface
- inheritance에서 super class(+interface)는 많을수록 좋다.
> interface
- data의 틀을 잡을 때 사용
- implements와 ,로 여러 개 상속 가능
implements MC, Singer, Comedian
- upcasting, downcasting 가능