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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年11月25日E検定対策!Pythonで学ぶ「情報理論」入門:エントロピーからKLダイバージェンスまで徹底解説
山崎講師2025年11月24日エンジニアこそ知っておきたい!「ビジネスマナー」が最強のコスパ戦略である理由
山崎講師2025年11月24日つながりの質を変えろ!「ネットワーク理論」で目指すプロデューサー型キャリア
山崎講師2025年11月24日天才に勝つ必要なし!「比較優位」で見つけるあなたの生存戦略