2010-03-03 9 views
0

내가 객체 지향 프로그래밍에 대한 단서가 : 나는 세 가지 방법 (의 부호를 정의 할 필요가 부모 클래스 HandlerException이 필요추상 클래스와 인터페이스, 객체 지향 프로그래밍 질문

MethodA, MethodB, MethodC).

그런 다음 나는 HandlerException에서 상속 만 MethodA 부모 클래스의 정의하는 자식 클래스 BusinessHandler 있습니다.

그런 다음 나는 HandlerException에서 상속 만 MethodC 부모 클래스의을 정의하는 자식 클래스 의 DataHandler 있습니다.

그런 다음 나는 의 DataHandler에서 상속과 MethodC는 부모 클래스에 기록 소비 CustomerDAO라는 클래스가 있습니다. (그것을 소비하십시오 : DataHandler.MethodC).

보시다시피, 일반적인 객체 지향 프로그래밍 문제입니다. 정적 메서드 (MethodC)를 사용하여 클래스의 인스턴스없이 직접 액세스 할 수 있습니다. 부모 클래스 HandlerException은 추상적 일 수 있습니까? 3 가지 방법 (A, B 및 C)은 (내 질문은,이 부모 클래스를 작성하는 올바른 방법은 추상 회원, 또는 가상, 또는 어쩌면 인터페이스 추상?)

나는 당신이 내 질문에 대한 아이디어를 얻었고 나 자신을 분명히했기를 바랍니다. 미리 감사드립니다.

내가 잊어 버린 점 : 나는 C#을 사용하고있다 : MethodB은 앱의 다음 버전에서 구현 될 것이다.

답변

0

사용하는 언어에 따라 다르지만, HandlerException 클래스는 추상적이며 세 가지 방법 모두는 virtual입니다.

HandlerException 클래스에 구현이 전혀없는 경우 (이러한 세 가지 메서드 만 정의 함) 추상 클래스가 아닌 인터페이스로 만드는 것이 좋습니다.

또한 MethodB은 구현 되었습니까? 이러한 클래스 중 하나에서 구현되지 않으면 모든 클래스가 추상이어야합니다.

+0

답장을 보내 주셔서 감사합니다. 내가 제안한 방법을 시도했지만 정적 인 가상 또는 추상 메서드를 만들 수 없다. 위에서 언급했듯이 메서드 A, B 및 C가 자식 클래스의 클래스 인스턴스없이 직접 정적으로 사용할 필요가있다. . 또는 나는 틀린가 theres 다른 방법 있는가? – lidermin

+0

@lidermin - 정적 일 필요는 없습니다. 자식 클래스에서 메서드를 호출하는 경우 이미 인스턴스가 있습니다. 그래서,'DataHandler.MethodC'보다는 오히려'this.MethodC'이거나 그냥'MethodC' 일 것입니다. –

+0

오오하우 이제 알겠습니다! U는 내 마음을 비운다! 다시 한 번 감사드립니다! – lidermin

관련 문제