継承のメリットやextendsの使い方を理解しよう【Java入門講座】4-1 継承

Поділитися
Вставка
  • Опубліковано 14 жов 2024

КОМЕНТАРІ • 27

  • @そらおちゃんねる
    @そらおちゃんねる 10 місяців тому +3

    丁寧な説明いつもありがとうございます。
    実行用クラスでオブジェクトの生成をする際、指定できるクラスは一つであるため、複数のクラスが持つ変数やメソッドを使えない。
    そこで継承を行い、サブクラスを指定してあげることで、スーパークラスが持つメソッドも呼び出すことができるということですね。

    • @SekaChan
      @SekaChan  10 місяців тому +2

      そらおちゃんねるさん、コメントありがとうございました!
      たしかに継承を使えば他のクラスの変数やメソッドを使うことができますが、場当たり的にクラスをつなげていくとクラス同士の関係が複雑になってしまいます。
      継承の考え方として「スーパークラスを拡張してサブクラスを作る」という観点が大切ですね😄

  • @Ayakaikura6018
    @Ayakaikura6018 Місяць тому +1

    カナダの大学で学んでますがJava講座のおかげでJavaでA+取れたの本当に感謝してます!

    • @SekaChan
      @SekaChan  Місяць тому

      良い成績を取れて良かったですね!おめでとうございます👍
      自宅の狭い部屋で撮った動画が遠く離れたカナダで見てもらえてるなんて嬉しいです!

  • @subsubako1454
    @subsubako1454 Рік тому +2

    とても丁寧な説明ですね☺️分かりやすそうなので他の動画も是非参考にさせて頂きます。

    • @SekaChan
      @SekaChan  Рік тому

      subsub akoさん、コメントありがとうございました!
      分かりやすそうって感じてもらえて嬉しいです😄
      Javaは基本文法からwebアプリ編までひと通り揃っているので、ぜひ参考にしてみてください!

  • @icantspeakenglish10
    @icantspeakenglish10 Рік тому +2

    ますます難しくなってきたが復習すればなんとかなるだろう

  • @野醍醐天皇
    @野醍醐天皇 Рік тому +2

    継承するかどうかの判断は難しいですよね。使い方を誤ると密になり、改修や拡張がしづらくなるので。

    • @SekaChan
      @SekaChan  Рік тому +1

      野醍醐天皇さん、コメントありがとうございました。
      そうですね。そのあたりも意識してクラス設計をする必要があるのかなと思います。

  • @ツボツボ-o4y
    @ツボツボ-o4y Рік тому +5

    理解はできた気がします。
    クラスが2つから3つになると難しく感じますね。
    このまま4章も駆け抜けたほうがいいでしょうか?
    それとも練習で書いたほうがいいですか?

    • @SekaChan
      @SekaChan  Рік тому +2

      ツボツボさん、コメントありがとうございました!
      クラスの数が3章から2つになり、4章から3つ以上になって難しさが上がっていきますね。
      駆け抜けたほうが良いかは、プログラムを「読める」レベルで良しとするか、「書ける」レベルまで理解を深めたいかですね😄
      僕だったら分からないことがあると気になるので一つひとつ書きながら進めていきますが、もし先に4章の全体像をつかみたいのであれば駆け抜けるのもアリだと思います!

  • @chill9634
    @chill9634 Рік тому +2

    こんちには。動画拝見させていただきました。
    一つ疑問なのですが、継承のイメージ図の矢印はなぜ上向きなのでしょうか。親クラスを編集したら子クラスにも反映されるイメージだと矢印が下向きの方がしっくりきます…なにか理由はあるのでしょうか

    • @SekaChan
      @SekaChan  Рік тому +2

      こんにちは。コメントありがとうございました!
      継承の矢印の向きについては、リアルの研修でもよく質問を受けますね。
      【スーパークラスからサブクラスに機能が引き継がれる】という視点だと、たしかにスーパー→サブの向きのほうが自然です。
      ただ、ホワイトボードに描いたようなクラス図は(コーディングする前の)設計フェーズで使われることも多くて、その際に【複数のクラスで共通する情報をスーパークラスとして抜き出す】ことがよくあります。
      つまり、サブクラスをもとにスーパークラスを作る(汎化)わけですね。
      クラス図や汎化の矢印は「UML」という記法なんですが、UMLでは後者の視点で矢印の向きが決められたといわれています。

    • @chill9634
      @chill9634 Рік тому +1

      @@SekaChan ...なるほど!【サブがスーパーに依存している方向】が【矢印の向き】みたいなイメージで...それがUMLという世界的な決まり事になってる。っていう解釈であってますか?

  • @あひゃひゃ-r4i
    @あひゃひゃ-r4i 4 місяці тому +1

    継承した場合、スーパークラスをオブジェクト生成して使うことってありますか??サブクラスをオブジェクト生成すればスーパークラスのメソッドも使えるので、、

    • @SekaChan
      @SekaChan  4 місяці тому

      スーパークラスの機能だけ使えれば十分なときとかは、スーパークラスのオブジェクトを使うことがありますね。
      例えば5章で出てくるExceptionクラスも(いろんなサブクラスがありますが)よく使われています😄

  • @あさみ-z4l
    @あさみ-z4l Рік тому +3

    コンストラクタは継承しない、の話が理解できませんでした。
    Person()とクラス名のStudent()の名前が合わなくなってしまうというのはどういうことか、
    もう一度説明していただけると嬉しいです。

    • @SekaChan
      @SekaChan  Рік тому +1

      くるみさん、コメントありがとうございました。
      コンストラクタにはクラス名と同じ名前をつけるルールがありましたね😄
      なので、Personクラスのコンストラクタは Person(‥){~} です。
      これをStudentクラスで継承すると、Studentクラス内に Person(‥){~} が含まれることになり、名前のルールが崩れてしまいます。
      これが『Person()とクラス名のStudentの名前が合わなくなってしまう』の意味合いですね。
      そのため、コンストラクタはサブクラスに継承されない仕組みになっています。

    • @あさみ-z4l
      @あさみ-z4l Рік тому +1

      @@SekaChan
      理解できました!!ありがとうございます!

  • @sanrushieru
    @sanrushieru 2 роки тому +3

    この章から設計クラスの先頭にpublicがつくようになっています。何故でしょうか。ちなみに私の環境ではpublic無しでも正常に動作するようです。

    • @SekaChan
      @SekaChan  2 роки тому +2

      Yoshida Sanさん、コメントありがとうございました!
      この章からpublicがついているのは、3-8 カプセル化( ua-cam.com/video/AAHWf_yqEyY/v-deo.html )でpublicを解説したためですね。
      publicをつけなくても正常に動作はしますが、カプセル化をするといくつかのメリットがあります。
      (詳しくは3-8の動画も参考にしてみてください😄)

    • @sanrushieru
      @sanrushieru 2 роки тому +2

      ​@@SekaChan ありがとうございます。理解できました。

  • @gingilbeys_3874
    @gingilbeys_3874 Рік тому +3

    class の前にpublic をつけるときの条件は何でしょうか?

    • @SekaChan
      @SekaChan  Рік тому +1

      GIN GILBEY`S_さん、コメントありがとうございました!
      publicをつけるための条件は特にありませんよ👍
      publicをつけるとどうなるかはこちらの動画を参考にしてください→ ua-cam.com/video/AAHWf_yqEyY/v-deo.html

    • @gingilbeys_3874
      @gingilbeys_3874 Рік тому +1

      @@SekaChan 動画1つ飛ばしちゃってたみたいです。
      教えていただき助かりました🙇‍♀️

  • @harrissoejima5111
    @harrissoejima5111 Рік тому

    classの前にpublicをつけないとうまくコンパイル出来ますがclassの前にpublicをつけるとクラスPersonはpublicでありファイルPerson.javaでせんげんする必要がありますというエラーメッセージが出ます。class Studentも同じメッセージが出ますが何故classの前にpublicをつけるとエラーになるのですか?

  • @minghuhe199
    @minghuhe199 Рік тому +1

    がんばれ