0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Day 7

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

Posted at

つまりどころ〜

  
こんにちは。

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

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

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

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?