#はじめに
今回はJavaの抽象クラスについて書いていきたいと思います。
そんなに難しくはないのでサラッと理解しましょう!
##抽象クラスとは
抽象クラスは継承されることを前提としたクラスでスーパークラスとなる為に生まれた存在です。
特徴としては、
- クラス宣言時にabstractを付ける
- newをしてインスタンスを作成することが出来ない
- 抽象メソッドを作成することが出来る。
といったものがあげられます。
###抽象クラスの宣言
//下記のどっちかの宣言
abstract public Class Member{};
public abstract Class Member{};
宣言する時はこのようにアクセス修飾子の前後どちらかにabstractを付けます。
##抽象メソッドとは
抽象メソッドはスーパークラスでは処理内容は書かずにサブクラスで必ずオーバーライドしないといけないメソッドになります。
逆に言うと、必ずオーバーライドして欲しいメソッドを書きたい時に使います。
###抽象メソッドの宣言
public abstaract void show();
抽象メソッドは**「{}」**を書きません。
オーバーライド前提なのでサブクラスで処理を書いてもらいます。
##抽象クラスを使いたい場面の例
どんな時に抽象クラスを使うのか例を示したいと思います。
例えば図形のクラスを作りたいと思ったときに「三角形」や「四角形」など様々な図形がありますね。
図形には面積を出す公式がそれぞれ個別に存在します。
公式で計算してくれるメソッドは絶対欲しい!
そんな時はまず抽象クラスで図形のスーパークラスを作ります。
abstract public Class Shape(){
//コンストラクタ
protected Shape(){}
//公式を書く用のメソッド
abstract public int areaFomula();
}
あとは、この抽象クラスを継承して様々な図形のサブクラスを作っていきましょう
//三角形のクラス
public Class Triangle extends Shape(){
public Triangle(){
super();
}
@Override
public int areaFomula(){
//底辺*高さ/2の処理を返す
...
}
}
##さいごに
抽象クラスどうだったでしょうか。
最大の特徴は抽象メソッドで便利ですが、そこまで難しくはないかと思います。
抽象クラスは抽象メソッド以外のクラスも書けますし、融通が利くのでぜひ使ってみてください!
ご覧いただきありがとうございました。