Java 인터페이스 #2

유형 캐스팅 및 다형성 종료

검토

  • 자동 유형 변환
class A {}

class B extends A{}

main(){
	// 상속관계의 자동 타입 변환
	// 부모 클래스 타입 <- 자식클래스
	A a = new A()
	a = new B();
	// 상속관계의 강제 타입 변환
	// 부모 클래스 타입(B) <- (자식클래스 타입) 자식클래스(A)
	B() = (B) a;
}

interface A{}	// 인터페이스

calss B implements A{}	// 구현 객체

main(){
	// 인터페이스와 구현객체 관계의 자동 타입 변환
	// 인터페이스 타입(A) <- 자식클래스 (B)
	A a = new B(); <- 구현객체(B)
	// 인터페이스와 구현객체 관계의 자동 타입 변환
	//  구현객체 (B) <- 인터페이스 타입 (A)
	B b = (B) a;
}
  • instanceof: 강제 유형 변환을 수행하기 전에 변환이 가능한지 확인하는 데 사용됩니다.


    상속이 하위 클래스 유형인지 인터페이스가 구현 클래스 유형인지 확인하는 데 사용됩니다.

  • 인터페이스 상속: 클래스는 다중 상속을 허용하지 않지만 인터페이스는 다중 상속을 허용합니다.


    즉, 상위 인터페이스는 extend 키워드를 따를 수 있습니다.

마무리 문제

08-2 형주조와 다형성 – 3번)

DaoExmaple 클래스의 main() 메서드에서 dbWork() 메서드를 호출할 때 OracleDao와 MysqlDao 객체를 파라미터로 전달하여 호출했습니다.


dbWork() 메서드에는 두 개체를 매개 변수로 받는 DataAccessObject 유형의 매개 변수가 있습니다.


실행 결과를 보고 DataAccessObject 인터페이스, OracleDao 또는 MySqlDao 구현 클래스를 생성합니다.


Java 인터페이스 #2 1