다향성
하나의 타입에 대입되는 객체에 따라 실행 결과가 다양한 형태로 나옴 -> 상속, 인터페이스
- 자동 타입 변환(Promotion) : 구현 객체가 인터페이스 타입으로 변환되는 것 ex) 인터페이스 변수 = 구현 객체;
- 필드의 다형성 : 인터페이스:Tire
Tire 구현 클래스1 Tire 구현 클래스2
Car c = new Car();
c.front = new 구현클래스1(); c.back = new 구현클래스2();
- 인터페이스 배열로 구현 관리
인터페이스를 배열로 선언하여 사용 가능 -> 각각의 인터페이스를 다른 객체로 선언하여 사용 가능
- 매개 변수의 다향성
매개값을 다양화하기 위해서 상속에서는 매개 변수를 부모 타입으로 선언하고 호출할 때는 자식 객체 대입
- 강제 타입 변환(casting)
구현 객체가 인터페이스 타입으로 자동변환하면, 인터페이스에 선언된 메소드만 사용 가능
(상속시 부모에게 있는 메소드만 사용할 수 있는 것과 같은 맥락)
- 객체 타입 확인(intsanceof)
구현 객체가 인터페이스 타입으로 변환되어 있는 경우에만 가능
ex) 인터페이스 a = new 클래스1(); 클래스2 b = (클래스2) a;
- 인터페이스 상속
다른 인터페이스 상속 가능, 다중 상속 허용
ex) public interface 하위인터페이스 extends 상위 인터페이스1, 상위 인터페이스2 {}
-> 그럼 상위 1,2의 실체 메소드 구현 클래스에서 정의해줘야함
-<이것이 자바다1>. 한빛 미디어