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タッチタイプゲームとして遊ぶことができます。