Guest User

Untitled

a guest
Nov 16th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. /**
  2. * このクラス名の後に「extends 継承クラス」と書くことで、
  3. * 引き継ぎたいクラスの機能を引き継ぐことができる。
  4. */
  5. public class Pikachu extends Pokemon{
  6.  
  7. /**
  8. * 継承されたフィールド変数とメソッドは、ここであらためて記述する必要はない。
  9. * 書かなくても利用することができる。
  10. */
  11.  
  12.  
  13. Pikachu(int input_hp, int input_atk, String input_nickname) {
  14.  
  15. // しかし、コンストラクタは書き直す必要がある。
  16. // 継承元のクラス(親クラス)と同じでいい場合は、「super(同じ引数たち)」と書けば良い。
  17. // superとは親クラスのコンストラクタを指す言葉。
  18. // 今回はsuperを一行書いただけなので、Pokemonのコンストラクタと全く同じ動きをする。
  19. super(input_hp, input_atk, input_nickname);
  20.  
  21.  
  22. /**
  23. * 余談:
  24. * superはコンストラクタのはじめの行でしか書くことはできない。
  25. * ある程度変数などを定義してからsuperを実行したいときがあったとしてもそれを行うことはできない。
  26. *
  27. * (筆者のスキルが低いせいか)この問題に対しての冴えた解決策は思いつかない。冴えてない解決策は次の通り:
  28. * superの引数に予め、余計な(引数にしたのに一切コンストラクタに関与しない)引数を準備しておき、
  29. * 余計な引数の部分にその変数と同じ型を返すメソッドを投げることで、superより早くそのメソッドを実行することができる。
  30. * そのすばやく実行できるメソッドに、事前に処理したい内容を書いておけば良い。
  31. */
  32. }
  33.  
  34. }
Add Comment
Please, Sign In to add comment