【初心者】Java質問・相談スレッド99【大歓迎】 at TECH
[2ch|▼Menu]
384:デフォルトの名無しさん
07/03/13 23:05:27
>>380
・ある性質に特有の処理が存在する。部分的に実装を共有できる。
 もしくはどうしてもある種の実装が必要だ。
(interface は実装をもてない。abstract class はもてる。)
・その性質の出現する場面が予想できる。もしくは限定した局面でしか使用しない。
(あとから再利用を試みる場合、interface の方が制約が少ない。
 abstract class だと、別のクラスの継承が必要な時にはもう使えない。)

上記を満たすなら abstract class。
制限をかけることによって(考えることを減らすことで)実装を容易にしたい場合も。

それ以外は interface。
interface の方がより純粋。制限が少なくて柔軟性が高い。
反面、実装の手間が多くなる。

最近は「とりあえずinterfaceにしとけ」な気がする。
実装に関してはヘルパークラスやテンプレートクラスを内包して、
そっちに処理を転送する方法で、継承と大差ない手間で済む。
その上で拡張性を保てる。

GUIフレームワークの基本部品なんかは abstract class ベースのものが多い。
画面表示に関する基本実装がどうしても必要とかそんなんだろうか。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4335日前に更新/251 KB
担当:undef