많은 프로젝트에 연결할 수있는 툴킷으로 사용하고있는 Java 클래스 세트가 있습니다. 이 툴킷의 코드를 변경하고 싶지 않으므로 언제든지 버그를 수정하거나 업데이트 할 수 있습니다. 로컬 변경 사항에 대해 걱정할 필요없이이를 사용중인 프로젝트에 코드를 놓을 수 있습니다.자식 개체를 부모 개체로 사용하는 방법은 무엇입니까?
FILE : 툴킷/개()
public class Dog(){
public void pet(){
print("scratch ruff");
}
}
로컬 프로젝트 툴킷에서 메서드를 재정의해야하는 경우 따라서, 난 그냥 같은 같은 툴킷 객체의 로컬 버전을 만들 FILE : 지역/개()
public class Dog extends toolkit/Dog {
public void pet(){
print("rub ears");
}
}
그리고 로컬 객체에서, 나는 지역 Dog
객체 대신 툴킷 Dog
객체를 참조하십시오.
지금까지 큰 성과를 올렸지 만 문제가 발생했습니다. 이 툴킷의 다른 클래스는 Dog
을 사용합니다.
FILE : 툴킷/DogHandler
public void careForPack(List<Dog> arg_allTheDogs){
for(Dog fido : arg_allTheDogs){
fido.pet();
}
}
시스템이이 같은 Dog
대상이 아닌 것을 좋아하지 않는다는 것입니다 발생하는 문제. DogHandler
을 로컬로 오버라이드하고 싶지는 않습니다. 왜냐하면 필자의 전체 툴킷을 오버라이드 할 수 밖에 없기 때문입니다.
Dog
의 자식 (Dog
이라고도 함)을 DogHandler
이 올바른 것으로 인식 할 수있는 방법이 있습니까?
전체 클래스 이름으로 한정 ... <로컬 패키지 이름> .Dog이 트릭을 수행해야합니다. – Shark
'공개 무효화 careForPack (리스트 arg_allTheDogs) {'? –
OldCurmudgeon
나는 방법 서명에 toolkit.dog를 사용하고 싶지만 방법 본문에는 실제, 지역 dog를 사용하고 싶어한다. – Shark