Javaの具象クラス
1前書き
このクイックガイドでは、Javaの「具象クラス」という用語について説明します。
まず、用語を定義します。それでは、それがインターフェースや抽象クラスとどう違うのかがわかります。
** 2具象クラスとは
-
具象クラスは
new
キーワードを使ってインスタンスを作成できるクラスです** 。
言い換えれば、それはその青写真の
完全な実装
です。具体的な授業は完了です。
たとえば、
__ Car
__classを想像してみてください。
public class Car {
public String honk() {
return "beep!";
}
public String drive() {
return "vroom";
}
}
そのメソッドはすべて実装されているので、これを具象クラスと呼び、インスタンス化できます。
Car car = new Car();
JDKの具象クラスの例としては、**
HashMap
、
HashSet
、
ArrayList
、および
LinkedList
があります。
3 Java抽象化と具象クラス
-
すべてのJava型がそれらのすべてのメソッドを実装しているわけではありません。
-
Javaでは、インタフェースと抽象クラスを使って抽象化することができます。
具体的なクラスを他のクラスと比較して、もっとよく見てみましょう。
3.1. インターフェース
-
インターフェースはクラスの設計図です** 。つまり、未実装のメソッドシグネチャのコレクションです。
interface Driveable {
void honk();
void drive();
}
-
class .
** の代わりに
interface
キーワードを使用することに注意してください。
__Driveable
は未実装のメソッドであるため、
new
__キーワードでインスタンス化することはできません。
しかし、
__ Car
__のような具象クラスはこれらのメソッドを実装できます。
JDKは**
Map
、
List
、および
Set
のような多数のインタフェースを提供します。
3.2. 抽象クラス
-
抽象クラスは、実装されていないメソッドを持つクラスです。** 実際には両方を持つことができます。
public abstract class Vehicle {
public abstract String honk();
public String drive() {
return "zoom";
}
}
-
抽象クラスをキーワード
abstract
でマークすることに注意してください。
繰り返しますが、
Vehicle
には未実装のメソッド
honk
があるため、
__new
__キーワードを使用することはできません。
JDKの抽象クラスの例としては、**
AbstractMap
および
AbstractList
があります。
3.3. 具体的なクラス
対照的に、
具象クラスには実装されていないメソッドはありません。
実装が継承されているかどうかにかかわらず、各メソッドに実装がある限り、クラスは具体的です。
具象クラスは、先ほどの
Car
の例と同じくらい単純になることがあります。それらはインターフェースを実装し抽象クラスを拡張することもできます。
public class FancyCar extends Vehicle implements Driveable {
public String honk() {
return "beep";
}
}
__FancyCar
classは、
honk
の実装を提供し、
Vehicle.
から
drive__の実装を継承しています。
そのため、未実装のメソッドはありません。したがって、
new
キーワードを使用して
FancyCar
クラスのインスタンスを作成できます。
FancyCar car = new FancyCar();
あるいは、単純に言えば、抽象的ではないすべてのクラスを、具象クラスと呼ぶことができます。
4概要
この短いチュートリアルでは、具象クラスとその仕様について学びました。
さらに、インターフェイスと具象クラスおよび抽象クラスの違いを示しました。