금일 프로젝트 제출한 과제 리팩토링을 하던 도중 제네릭 관련하여 궁금증이 생겼다.
ex) B라는 class에서 abc라는 메소드 정의 -> 함수의 결과로 반환되는 객체는 abc 메소드 사용 가능
A<B> like(int a)
{
return ~~~;
}
2) 반환형 타입 명시 x : 반환형 타입을 명시하지 않는 경우 최상위 클래스인 Object 객체가 반환되고, 실제 반환되는 객체의 클래스에서 정의한 필드나 메소드를 사용할 수 없다.
(상위 타입변수가 하위 타입의 객체를 가질 경우 불가능한 점 동일 적용)
ex) B라는 class에서 abc라는 메소드 정의 -> 함수의 결과로 반환되는 객체는 Object 형이기에 abc 메소드를 사용할 수 없음 -> 명시적 형변환 해줘야 함
A like(int a)
{
return (B)~~;
}
// 동작하려면 위 함수의 return값에 명시적 형변환 : (B)를 붙여줘야 한다.