여기에 내 시나리오가 있습니다. 3 가지 클래스가 있습니다.부모 클래스와 하위 클래스에 대해 동일한 메서드에서 일반 형식
class Animal {
public getWeight(){ ..... }
public getHeight(){ ..... }
}
class Dog extends Animal {
public getDogType() { ...}
}
class Cat extends Animal {
public getCatType(){....}
}
그리고 매개 변수 여기
public Animal translate(CustomObject o){
... so many calculations here
}
방법은 동물 개체를 반환 번역으로 Object를 복용 동물 유형을 반환하는 다른 방법이있다,하지만 난 개를 반환하기 위해 같은 방법을 사용할 필요 typecasting도 고양이 유형. 여기에 제네릭을 사용해야한다는 것을 알고 있지만 Generics를 지원하는 번역 메서드를 편집하여 클래스 형식을 해당 매개 변수에 전달할 수 있으며 Animal 매개 변수와 Dog를 사용하여 호출 한 경우 Cat 매개 변수와 Animal 개체를 사용하여 호출 한 경우 Cat 개체를 반환합니다. Dog 매개 변수를 사용하여 호출 된 경우 개체.
예 : - Cat newCat = translate(object, Cat.class); //should return cat object and not animal obj
대신
(Cat.class, 객체) 번역
고양이 newCat = (고양이)의 감사합니다.
왜 형 변환이 필요하지 않습니까? – jordanpg