● 상속
- 자손클래스의 객체화시 부모클래스의 객체를 먼저 생성한다.
● 다형성
- 바인딩 : 부모클래스와 자손클래스가 동일한 멤버를 소유 하는 경우에 참조변수와 객체의 관계
멤버변수 - 참조변수의 자료형 / 멤버메서드 - 오버라이딩된 메서드 ex) 참조변수가 부모 타입 or 어느 타입이여도 오버라이딩된 메서드 실행
● 추상클래스
- 추상클래스의 상속 : 추상클래스 간의 상속 가능, 추상클래스 간의 상속시 상속 받은 추상클래스를 꼭 정의할 필요 X, 추상클래스를 상속받은 추상클래스를 일반클래스에서 구현할 때 상속받은 모든 추상클래스를 구현해야 함.
- 추상메서드가 하위메서드에서 구현되면 상위(추상)클래스에서 사용가능. (∵ 오버라이딩 된 메서드는 타입에 상관없이 실행됨)
● final 제어자
- 클래스 : 상속 X / 메서드 : 오버라이딩 X / 변수 : 수정 X (단, 명시적 초기화를 하지 않은 경우 생성자에서 한번 가능)
● 인터페이스(접근제어자 : public)
- 인터페이스간의 다중상속 가능(extends 사용) ex) interface in3 extends in1, in2
- 기본값 - 추상메서드 : public abstract / 상수 : public static final
(즉, 인터페이스를 하위클래스에 구현할 때 접근제어자는 public만 가능함)
- JDK 1.8부터 추상메서드와 상수뿐만 아니라 static메서드와 default메서드 추가 가능.
(default메서드의 경우 default를 꼭 명시해줘야함 (∵ 기본값은 public abstract))
● 내부 클래스
- 특징 : 자료형으로 사용됨, 객체화 가능, Object의 하위 클래스임.
멤버(변수, 메서드, 생성자) 소유가능.
외부 클래스의 멤버임 => 외부클래스의 private 접근 가능.
인스턴스 내부클래스 - 인스턴스, 상수 O / 스태틱 정의 X [상수 : final static => static이지만 예외로 사용가능]
스태틱 내부클래스 - 인스턴스, 상수, 스태틱 정의 O
지역 내부클래스 - 인스턴스, 상수 O / 스태틱 정의 X
지역 내부클래스 안의 메서드의 지역변수는 상수(final)여야함. => 메서드 안에서 값 변경X
값을 변경하고 싶으면 외부클래스의 멤버변수로 작성.
익명 내부클래스 - 클래스없이 객체화 가능, 추상클래스&인터페이스 객체화 가능.
'자료 > 자바의 정석' 카테고리의 다른 글
CH9 기본API(1) (0) | 2020.05.25 |
---|---|
CH8 예외처리 (0) | 2020.05.22 |
CH6 객체지향 프로그래밍(1) (0) | 2020.05.13 |
정렬(Sort) (0) | 2020.05.08 |
Ch5 배열 (0) | 2020.05.08 |