을 만든 이유는 그 반대가 허용되지 않는 이유는이 규칙을. 만들기 뒤에 이유는 method signatures이 샘을 유지해야하는 무슨 내가 알아낼 수 아니다 e 예상되는 곳에서 동일한 인터페이스를 준수해야합니다.
예를 들어 당신이 UnknownIgnitionException
를 throw하는 방법 drive()
이있는 Car
이 있고 그 클래스, 당신은 때때로 차처럼 취급 할 것 extends
하는 Ford
이있는 경우 (그리고 특히 Ford
유형 Car
) 그래서 방법 drive()
가 모든 자동차에서 똑같이 보이고 작동 할 것으로 기대합니다. 이것은 당신이 그들 모두가 당신이 할 수없는 독립 예외를 던진 경우
for (Car c : listOfCars) //list contains Fords, Porches, Fiats, etc
{
try {
c.drive(); //All sub-classed Cars contain this exact method
}
catch (UnknownIgnitionException e)
{
//As all subclassed cars are restricted to the same method signature, you can be sure what exceptions all Cars throw
}
}
을 가질 수 자동차 (포드, 피아트, 포르쉐)의 무리를 운전 테스트하기를 원한다면 의미
.
이전 질문에서 Steve McLeod가 이미 답변했습니다 : http://stackoverflow.com/a/3520613/685806 – Pino
이 질문에 대한 답변은 없지만 위의 대답은 규칙을 설명하지만 OP가되는 규칙의 이유는 아닙니다. 묻고있다. –