Java 인터페이스 #2

jjinny_0609·2023년 2월 22일
0

Java

목록 보기
27/31

타입 변환과 다형성 마무리

복습

  • 자동 타입 변환
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 : 강제 타입 변환을 하기 전에 변환이 가능한지 조사할 때 사용한다.
    상속에서는 자식 클래스 타입인지, 인터페이스에서는 구현 클래스 타입인지를 확인할 때 사용한다.

  • 인터페이스 상속 : 클래스는 다중 상속을 허용하지 않지만, 인터페이스는 다중 상속을 허용합니다.
    즉 extends 키워드 뒤에 상위 인터페이스가 올 수 있습니다.

마무리 문제

08-2 타입 변환과 다형성 - 3번)

DaoExmaple 클래스의 main() 메서드에서 dbWork() 메서드를 호출할 때 OracleDao와 MysqlDao 객체를 매개값으로 주고 호출했습니다.
dbWork()메서드는 두 객체를 모두 매개값으로 받기위해 DataAccessObject 타입의 매개 변수를 가지고 있습니다.
실행 결과를 보고 DataAccessObject 인터페이스와 OracleDao, MySqlDao구현 클래스를 각각 작성해보세요.

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :

0개의 댓글