![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
C#の開発を始めて日が浅いため、現場におけるお作法がわかりません。
現場におけるクラス・インターフェースを継承したメソッドのドキュメンテーションコメントの付け方に関する一般論についてお教えいただきたいです。
※基底クラス、及びインターフェースの抽象メソッドにはドキュメンテーションコメントの記述がある物とします。
※普段はJavaを使っている為、そこから引用している書いている部分があります。ご容赦下さい。
・抽象クラスにおけるインターフェースから継承した抽象メソッド(実装しない場合)
Javaとは違い、抽象クラスであってもインターフェースが持つの抽象メソッドを無視する事はできず、
public abstract修飾子を付けて抽象メソッドを定義してやる必要があるようなのですが、
この場合、ドキュメンテーションコメントは省略すべきでしょうか?
それとも、何かしら記述するべきなのでしょうか?(Javaで言うところの@inheritDoc等・・・そのような物があるかはわかりませんが)
・新たに実装を行う場合(抽象メソッドの実装等)
省略すべきでしょうか?
・既存の実装を拡張し、変更の影響は微小かつメソッド内のみで完結し、概要やその他のメソッドの責任において表記すべき内容に変化が無い場合
省略すべきでしょうか?
・既存の実装を拡張し、想定される例外の追加等、メソッド外にも影響を及ぼす大きな変更が入った場合
新たに完全なドキュメンテーションコメントを作成するべきでしょうか?
それとも差分以外は新たに作成すべきではないのでしょうか?
一般論と言っても規模や進め方によって様々だとは思いますが、
通念的に「心がけていくべき事」等あれば、是非お教え下さい。
最後に、この質問の趣旨からは外れるのですが、一つ追加で別の質問をさせてください。
私は何故抽象クラスがインターフェースの抽象メソッドを無視できないかがわかっておりません。
(インターフェース-インターフェース、抽象クラス-抽象クラスは無視できるのに)
敢えて明示的に定義を強要させている以上、何か理由あっての事だと思いますが、
それがわからず悶々村々としながら作業しております。
その理由をお教えいただけませんでしょうか。
宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
オブジェクトを作るよりは使うことばかりが多い者ですが、後者の意味は私は以下のように解釈しています。
抽象クラスを実体化すると、メモリー上の空いた位置を先頭に、変数もメソッドもその先頭を基準に同じ位置に来る機械語プログラムが出現します。名前を変えて何度も実体化すれば、メモリー空間上にまるで間取りがそっくり同じプレハブ住宅が複数建つようなことになるのです。
従って抽象クラスの継承は子孫へ単一継承されますが、この子クラスを改造するのは各部屋の色を変えたり家具の配置を換えたりする程度のことなので、変更のない部分は定義しなくてもいいのです。
それに対して、インターフェースを住宅に例えると、まだ間取りも何も決まっていない庭や車庫のようなもので、とりあえず「庭だ」「車庫だ」といったとしても位置も大きさも不明な訳です。すなわち、メモリー上の大きさも相対的なメソッドの先頭番地も不明なのです。
だからこそ、インターフェースは、メモリー上の自由な位置に展開して多重継承できるのですが、その展開の具合を明示してやらなければ、コンピュータは自由に書き込めるメモリーが確定しないのです。
以上のようなイメージで、私はオブジェクト指向プログラミングを捉えています。ご参考になったでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
interface,extend,implementの...
-
エクセルVBAで、条件に一致する...
-
「天声人語」をインターネット...
-
C#でほかのファイルにある自作...
-
ArrayListのgetメソッドが実行...
-
servletからjspへオブジェクト...
-
NTPサーバーへのアクセス
-
C#「オブジェクト参照が必要で...
-
execute()
-
LISTBOXの内容が更新されま...
-
packageとimport の違いって?
-
javaで、、、
-
命名規約は連番でいいのか?
-
JSPでclassのimport
-
ポータブル電源を買おうと思う...
-
Alertの自動制御
-
JSPでのArrayListの表示につい...
-
VB.NET フォーム上に描いたグ...
-
Java初級 引数に適用できません
-
ひとつのファイルにクラスは1つ?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
「ラッパークラス」の存在意義...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
オーバーライドとラッパーの違い
-
C# 「データが失なわれる可能性...
-
【C#】クラスのコンストラクタ...
-
JTextFieldの入力制限
-
c++でのヘッダーファイルの循環...
-
vb.net 自作プロパティの削除に...
-
「継承されたメソッドの可視性...
-
ASP.NETでの共通コードの書き方...
-
Javaのインスタンス化の構文の...
-
Javaで下線
-
メソッドの引数にクラス名を渡す
-
VB DLLプロジェクトについて
-
C#からDLLを呼びたいのですが・...
-
インターフェース型の使い方が...
-
委譲って何ですか?
-
C# 継承の問題で programに示さ...
おすすめ情報