つまりどころ〜
こんにちは。
Java Silver来年ほんきだす。
継承
あるクラスから機能や属性を引き継ぎ、取り込む仕組みのこと。
継承した機能や属性は自クラスの振る舞いとして利用することが可能だー。
class Main {
public static void main(String[] args) {
CarA carA = new CarA();
carA.brake(20);
}
}
class Car {
public int speed = 60;
public void brake(int _speed) {
speed = _speed;
}
}
class CarA extends Car {
}
CarAクラスはCarクラスを継承している。
継承するにはextendsの後ろに継承したいクラスを指定する。
CarAクラスはbrakeメソッドを定義していないが、
親クラスであるCarクラスが定義しているためにCarAクラスのメソッドのように使うことが可能。
また、子クラスで親クラスのメソッドを上書き(オーバーライド)することもできる。
class Car {
public int speed = 60;
public void brake(int _speed) {
speed = _speed;
}
}
class CarA extends Car {
public void brake(int _speed) {
speed = (_speed * 2); // オーバーライド!
}
}
上記のように親クラスのメソッド(brake)をオーバーライドした場合は、
子クラスのbrakeメソッドが呼び出されることになるので、親クラスのbrakeメソッドを子クラスから呼び出したい場合は明示的に記述する必要がある。
class CarA extends Car {
public void brake(int _speed) {
super.brake(_speed); // superとすることで親クラスを指す
}
}
継承の仕組みを使うことで様々なクラスで共通の処理を親クラスに集約し、
個別の処理のみを子クラスに定義することでメンテナンス性の向上や、コードの可読性向上につながっていく。
アウトプットして、ちしき固めていくぞ〜。