search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

2016年IT勉強総復習 ごった煮 Advent Calendar 2016 Day 7

posted at

Java Silverつまりどころ(その4)

つまりどころ〜

  
こんにちは。

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とすることで親クラスを指す
     }
}

継承の仕組みを使うことで様々なクラスで共通の処理を親クラスに集約し、
個別の処理のみを子クラスに定義することでメンテナンス性の向上や、コードの可読性向上につながっていく。

  
  
アウトプットして、ちしき固めていくぞ〜。
  
  

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?