다음과 같이 2 개의 클래스가 있습니다. 세 번째 클래스에서추상 클래스, 메서드 구현 구현
public absract class myAbstracClass{
//various methods and stuff.
}
public class myImplmentationOfAbstractClass extends myAbstractClass {
//just implments a call to the abstract class in the constructor.
//no extrac functionality is added in this instance.
}
나는 그때 분명 뭔가를 누락
public class doWork{
public static void main(){
//create my implmented class
myImplmentationOfAbstractClass myABC = new myImplmentationOfAbstractClass();
//send this class to my function
someFunctionality.myMethod(myABC);//this causes an NPE
}
}
이 방법을 호출 내 코드에서 방법
public class someFunctionality{//
//default constructor
public static void myMethod(myAbstractClass abc)
//do stuff with abc
}
을 가지고, 내가 찾는 아니에요 구글에서.
지금은 myImplementationOfAbstractClass 객체를 허용하도록 메서드를 변경했습니다. 그러나 이것은 추상 클래스를 다시 사용하고 특정 인스턴스에 대해 확장해야 할 것으로 예상됨에 따라 나쁘다.
이 문제가 잘못되거나, 수퍼 클래스 복사본을 예상하는 메서드에 수퍼 클래스의 하위 클래스를 보낼 수 있습니까?
미리 감사드립니다.
데이비드.
편집 :
난 그냥 대답하는 시간을 촬영하고있다 모든 사람에게 감사의 말씀을합니다. 당신은 모두 정확합니다. 문제는 다른 곳에서 발생했습니다.
내 함수 내에서 다른 임시 객체를 선언하고 잘못된 멤버로 선언하고 있다고 밝혀졌습니다.
다시 한 번 말씀 드리지만, 질문을 작성하는 과정은 응답과 마찬가지로 도움이되었습니다. 우리 모두는 같은 결론을 내었습니다. (나는 당신이 내가 추측 한 응답을 게시하는 곳에서와 마찬가지로) 그것을 깨달았습니다.
myMethod 매개 변수를 하위 클래스로 변경 한 후 동일한 코드를 사용합니까? 그것은 이상 할 것이다! – Vikdor
당신이 묘사하는 것이 불가능한 것처럼 보이기 때문에 다른 것이 있어야합니다. [SSCCE (Short, Self Contained, Correct Example)] 게시 (http : //www.sscce.org /)는 문제를 잘 보여 주므로 더 나은 답변을 얻을 수 있습니다. – assylias