- 다형성
- 조상참조변수로 자손객체생성
- 참조변수의 타입변환
- instanceof
- 추상화
- abstract
- 추상클래스
- final
- 인터페이스
- implement
조상(공통 값)의 참조변수로 자손객체(개별객체)를 참조
한마디로 하나의 객체가 여러 타입을 가질 수 있다는 것
중복을 줄여 편의성을 높힌다.
Person cook = new cook;
조상클래스의 참조변수로 자손객체를 생성 할 경우 자손객체의 맴버 수는 조상의 맴버 수로 제한됨
자손의 참조변수가 조상객체를 참조는 불가능

()생략 가능()생략 불가캐스팅 가능 여부 확인 연산자(boolean)
[참조변수] instanceof [타입]
'미완성 설계도'
공통되는 성질의 추출
하위클래스의 공통 요소를 뽑아 상위클래스 만드는 것
앞에 붙어 추상클래스와 추상메서드를 만드는 제어자
추상 메서드를 하나 이상 가지고 있는 클래스를 추상클래스라 부른다
추상 메서드는 시그니처만 있고 실행부인 바디가 없다
abstract class Car { abstract void drive(); }
때문에 객체 생성이 불가능 하다
추상클래스는 상속관계의 클래스작성을 위한 클래스이며,
오버라이딩을 통해 각각 개별화된 메서드 작성이 가능 하게 된다
final키워드는 필드, 지역변수, 클래스 앞에 붙어 값의 변경을 불가능하게 만든다
클래스는 상속이 불가능해지고
메서드는 오버라이딩이 불가능해 진다
변수는 값의 변경이 불가능한 상수가 된다.
'기본 밑그림'
인터페이스는 추상 메서드와 상수만을 맴버로 가질 수 있다
필드값이 public static final로 고정된다(생략가능)
모든 메서드가 public abstract로 고정된다, 단 static과 default는 예외
인터페이스 구현시 extends 대신 implements 키워드를 쓴다
구현시 모든 추상메서드를 구현(오버라이딩)해야 한다
인터페이스는 인터페이스로부터 상속이 가능하다(실현 값이 없기 때문에)
인터페이스는 Object같은 최고 조상이 존재하지 않는다
하나의 클래스가 여러 인터페이스를 구현할 수 있다.
추상클래스와 인터페이스는 선언부와 구현부를 분리하여 코드변경의 번거로움을 최소화 할 수 있다는 장점이 있다
| 특성 | 추상 클래스 | 인터페이스 |
|---|---|---|
| 메서드 구현 | 일부 구현 | 구현 불가 |
| 상속 | 단일 상속 | 다중 상속 |
| 인스턴스 변수 | 가능 | 불가 |
🙄
단어가 햇갈려서 정리..
인터페이스는 다중상속을 통해 다중구현이 가능하다
메서드 오버라이딩은 선언부가 상위클래스와 완전하게 일치해야 한다
🦃🦃🦃
블로깅 제목을 보기좋게 리뉴얼 했다. 역시 쓸데없는데 쓰는 시간이 제일...
쓸데없지 않다 쓸데없지 않아!