038-オブジェクトの拡張-継承とクラス【新人エンジニアが最初に覚えたい100のJava文法】

Print Friendly, PDF & Email

ユーチューブ動画

継承とクラスについて解説します。

ソースコード

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