人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javaを学習しています
プログラミング初心者です

継承がよく分かりません
詳しく教えて下さい

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 匿名回答1号

起:
既存のプログラムclass Aに機能fugaを追加したいと思ったが、fugaのためだけにclass A を書き換えて他に影響が出ても困るよ。

class A {
 hoge
}

承:
そうだ!プログラムをコピペして別物として書き直そう!

class B {
 hoge
 fuga
}

転:
いや待て!同じことをいくつも書くのは効率悪いぞ!
A にミスがあったら B もやりなおしか!

class A {
 hoge
}
class B {
 hoge
  fuga
}

結:
class Bにはclass Aにない部分だけを書くようにしようぜ!
専門用語で継承って言うんだ。

class A {
 hoge
}
class B extends A {
 fuga
}

正直なところを書けば、マニュアルや入門書を読み解けないレベルの人が使うものではない。
理路整然としたコードを書けるようでなければメンテナンスの手間が増え続けるだけになってしまうので、機能を追加したければ新たに書き直すというくらいの努力をして十分にスキルアップしてから使うことを推奨する。


匿名質問者さんのコメント
解答ありがとうございます

2 ● 匿名回答2号

オブジェクト指向は人間系を模倣したものです。

継承は、会社組織で考えると分かりやいでしょう。

担当者レベルでは、決めていないことも上位の組織で決めてあることは守らなければ成りません。
つまり、担当者が決めていないことは、上位組織で決めておけば良いのです。

要は、共通の定義は上位クラスで定義しておけば、利用できるのです。
裏返すと、下位クラスの定義が優先されることになります。
これは正に人間系を象徴していますね。
オブジェクト指向プログラミングでのシステム構築が怖いことの一番大きな理由がこれだと思います。
信頼の世界であれば、システムは軽くなる。余談です。


匿名質問者さんのコメント
解答ありがとうございます

匿名質問者さんのコメント
わかりやすいたとえで、よくわかりました ありがとうございます^^
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ