1. 상속
○ 부모클래스의 멤버를 물려받아 사용하는 것
- private은 제외
- 다른패키지+default 제외
○ 키워드: extends, super(), overriding
- extends: 상속받을 상위클래스 선언(1자식 1 super)
- super(): 상위클래스의 생성자 호출
- @overriding: 상위클래스가 맘에 들지않아 subclass에서 정의하는 메소드
1) input param은 동일 2) 접근 제한을 더 강하게 불가 3) 새로운 예외 불가
○ overriding method가 있으면 상위클래스 메소드는 hidden
○ final 클래스는 상속 불가, final method는 overriding 불가
3. Casting
○ 여러 타입을 가진 상속받은 클래스는 대표 타입이 있고, 상속 타입 중에서 casting 가능
- promotion casting: 상위클래스 a= new 상속받은 클래스();
- 강제 casting
○ shadow effect
- 상위타입으로 선언된 경우에는 상위 클래스 이상 멤버로만 한정
- 예외: 메소드가 상속된 후 overriding 되었다면 이 경우라도 subclass에서 호출 가능(feat. 다형성)
https://docs.oracle.com/javase/tutorial/java/IandI/override.html
https://www.codeproject.com/Articles/1081861/OOP-Difference-between-Shadowing-and-Overriding
4. 다형성
○ 상속, 오버라이딩, 타입변환 : 사용이 자유로원
- 다형적 변수
- 재정의
- overloading
5. instanceof
○ 객체가 어떤 클래스의 인스턴스인지 확인하려면?
Shape(객체) instanceof Circle(인스턴스)
shape가 Circle의 인스턴스로 구성되었니?????
shape가 circle로 변환이 가능하니?
댓글 없음:
댓글 쓰기