A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> C#で「この場合は絶対インターフェースしかない!」
> という場面とはどのような場面でしょうか?
○複数のクラスに同じ機能を持たせたいが、継承では実現できない場合
(継承する際には、スーパークラスとなれるクラスは1個に限られますよね)
○複数の機能をクラスに持たせたい場合
(多重継承はできませんので)
また、インターフェースを見ればそのクラスで何ができるのかが分かりやすいというのもあります。
System.ICloneableインターフェースがついていれば、そのクラスで何が行われているのか分からなくても、
クローンの処理は保証してくれているのがわかります。
> また、インターフェースを実装するとき全然違う処理を実装してしまった時等はありますでしょうか?
0slowlykick0さんが何を連想されているのかが分かりませんが、
インターフェースの定義と実装がまったく異なってしまうことありません。
そういうことが起こるとしたら、設計がまずいか、インターフェースの中身を理解していないということでしょう。
No.2
- 回答日時:
Framework Design Guidelines という書籍(洋書)では、.NET Framework の設計や開発に携わったような人たちが .NET 開発者向けにソフトウェア設計のガイドラインをいろいろと紹介しています。
そこで書かれているガイドラインを要約すると、インターフェースを使うケースとしては
・値型に継承される必要がある型(IComparable 等)
・多重継承的な継承のされ方をする可能性がある型
だけで、それ以外は通常のクラス(もちろん抽象クラスも含めての話ですが)にするべきである、とあります。
.NET Framework では各所でインターフェースが使われていますが、.NET Framework の開発者たち自身も不必要にインターフェースを使ってしまった箇所については正直いって後悔しているようです。
例外的に AppDomain をまたぐことがあるオブジェクトの型は、MarshalByRef などを継承する必要があるため、基底となるインターフェースを用意する方がいいのですが、とりあえずは気にしなくて良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- その他(音楽・ダンス・舞台芸能) roland UM-ONEのMIDIインターフェースを使いたいのですが、 MacBook ProでO 1 2022/07/09 18:41
- 作詞・作曲 ガレージバンドでmidiキーボードを使ってピアノを打ち込んでいると絶対音ずれします。 クオンタイズを 1 2022/07/30 06:07
- ネットワーク プロトコルの階層化とインターフェースとの違い 2 2022/07/26 02:38
- システム 自社の外部接続システムと商用の外部接続サービスについて 1 2022/12/17 00:13
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- ノートパソコン このノートパソコンで大丈夫でしょうか? 2 2023/04/22 21:01
- HTML・CSS Google検索も終わりですか? グーグル、検索エンジンに対話型AI搭載へ 2 2023/04/08 11:50
- 食べ物・食材 防腐剤としてのビタミンCについて ペットボトル飲料を買うと添加物の欄に『防腐剤としてビタミンC』と書 4 2022/09/02 12:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
interface,extend,implementの...
-
Javaのインスタンス化の構文の...
-
Excel vbaのプログラムでガンマ...
-
抽象クラスをJUNITでテストする...
-
プログラムの組み立てについて
-
ASP.NETでの共通コードの書き方...
-
C# 「データが失なわれる可能性...
-
Javaの自作例外クラスについて
-
javaでクッキー認証を必要とす...
-
インターフェースの利点は?
-
インターフェースとは
-
Javaコレクションフレームワー...
-
「ラッパークラス」の存在意義...
-
Javaでタスクシステムを作るの...
-
メソッドの引数にクラス名を渡す
-
抽象クラスとインターフェース...
-
オブジェクト指向 ボールの衝突
-
エクセルVBAで、条件に一致する...
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
ASP.NETでの共通コードの書き方...
-
JTextFieldの入力制限
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
VB DLLプロジェクトについて
-
c++でのヘッダーファイルの循環...
-
【C#】クラスのコンストラクタ...
-
「IOException は対応する try ...
-
ファイルパスが取得出来ない(P...
-
メソッドの引数にクラス名を渡す
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
オーバーライドとラッパーの違い
-
vb.net 自作プロパティの削除に...
-
なぜインタフェースを使うのか?
-
VBがオブジェクト指向言語でな...
おすすめ情報