匿名質問者

javaを学習しています

プログラミング初心者です

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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/02/12 18:05:04

回答2件)

匿名回答1号 No.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
}

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

匿名質問者

解答ありがとうございます

2014/02/06 19:01:19
匿名回答2号 No.2

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

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

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

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

匿名質問者

解答ありがとうございます

2014/02/06 19:02:37
匿名質問者

わかりやすいたとえで、よくわかりました
ありがとうございます^^

2014/02/07 21:07:27

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません