038-オブジェクトの拡張-継承とクラス【新人エンジニアが最初に覚えたい100のJava文法】
ユーチューブ動画
継承とクラスについて解説します。
ソースコード
class Product { private String productName; private int price; public Product(String productName, int price) { this.productName = productName; this.price = price; } } class Printer extends Product { private int printSpeed; public Printer(String productName, int price, int printSpeed) { super(productName, price); this.printSpeed = printSpeed; } } class Computer extends Product { private double clockFeq; public Computer(String productName, int price, double clockFeq) { super(productName, price); this.clockFeq = clockFeq; } }
解説
継承とクラスについて解説します。
オブジェクト指向の考え方にはクラスとインスタンスがあります。
必要に応じてクラスを作成していくと、共通したクラスを持ちたいときがあります。
共通したクラスを持つことで、コード量の削減が期待できるからです。
共通するクラスを持つときに使う文法が継承と呼ばれる文法です。
Javaではextendsというキーワードを使います。
サンプルコードを確認しましょう。
3つのクラスが存在しています。
Productクラス、Printerクラス、Computerクラスです。
Productクラスは、PrinterクラスとComputerクラスに共通の機能を持ちたいとします。
そのとき、extendsキーワード使います。extendsキーワードでProductクラスという共通部品を使うという意味になります。
このとき、共通クラスのほうをスーパークラス、共通クラスを使う側のクラスをサブクラスと呼んでいます。
スーパークラスとサブクラスの関係を継承と呼んでいます。
PrinterクラスやComputerクラスのインスタンスを作成すると、Productクラスのメンバが自動的に含まれる形になります。
具体的には、PrinterクラスやComputerクラスのどちらのクラスを作成しても、productNameやpriceのメンバ変数が含まれるということです。
しかし、注意したいのは、コンストラクタは継承されません。
したがって、スーパークラスのコンストラクタを利用するためには、superかっこ〜という形で、
個別で呼び出す必要があります。ちょうど、PrinterクラスやComputerクラスのコンストラクタに含まれています。
継承するときには、extendsを使うということをぜひ覚えておきましょう。
以上、継承とクラスについて解説しました。
このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。
投稿者プロフィール
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
- 新入社員2024年11月23日「ゲシュタルト崩壊」とシステム開発
- 新入社員2024年11月23日データベースでテーブル名やフィールド名にスペースを使うことは、一般的には推奨されていません
- 新入社員2024年11月23日「データにはなぜ型が必要なのか?」を2進数の観点から解説
- 新入社員2024年11月23日ディスプレイの解像度の意味と変更方法