■No37798 (Jitta on the way さん) に返信
> ■No37797 (tailer さん) に返信
>
>>Show()などのメソッドが定義されているインターフェースをForm継承クラスに実装する場合、それらのメソッドはFormで実装済みなので継承クラスでは何もしなくてよい、というようなことがどこかのサイトに書いてあったんですが、何もしないと「Show()を実装する必要があります」とコンパイルエラーが出て、やはり何かしなくてはならないのか?ということを聞きたかったんですが、これについてはもう少し情報を探してみることにします。
>
> IForm というインターフェースに Show というメソッドを定義しました。これは、Form クラスが持っている Show メソッドとは別のものです。
>
> 今回のは、Form というクラスが持っているメソッドしか使わないようですから、インターフェースを定義する必要はないと思います。
今回はたまたまFormクラスが持っているメソッドしか使いませんが、もしFormクラスが持っているメソッド以外のメソッドも併せて定義する場合…たとえば
Public Interface IForm
Sub Show()
Sub Method1()
End Interface
のような場合。そしてShow()は、FormクラスのShow()に紐づけたい。なぜなら、IForm型の変数で画面表示も行いたいから。
そんなとき、やはり実装クラスではShow()について何かしなければならないんですよね?
それとも、インターフェースはMethod1()の定義だけにしておいて、Formクラスのメソッドが使いたいときはインスタンスをForm型に、Method1()が使いたいときは
インスタンスをIForm型に格納する…という形で使い分けるの一般的?
そんな疑問でした。
|