fork download
  1. //スーパークラス
  2. class Car {
  3. //インスタンス変数
  4. protected int num;
  5. protected double gas;
  6.  
  7. //コンストラクタの定義==オブジェクトの初期化
  8. //メソッドとは違い、自由に呼び出せないので、自動的に初期値をいれる
  9. public Car(){ //引数なしコンストラクタ
  10. num = 0;
  11. gas = 0.0;
  12. System.out.println("車を作成しました");
  13. }
  14.  
  15. public Car(int n,double g){ //引数ありコンストラクタ
  16. num = n;
  17. gas = g;
  18. System.out.println("ナンバーは"+num+"、ガソリン量は"+gas+"です");
  19. }
  20.  
  21. public void setCar(int n,double g){ //インスタンスメソッド
  22. num = n;
  23. gas = g;
  24. System.out.println("ナンバーは"+num+"、ガソリン量は"+gas+"です");
  25. }
  26.  
  27. public void show(){ //インスタンスメソッド
  28. System.out.println("ナンバーは"+num+"です");
  29. System.out.println("ガソリン量は"+gas+"です");
  30. }
  31. }
  32.  
  33. //サブクラス
  34. class RacingCar extends Car{
  35. private int course;
  36.  
  37. public RacingCar(){ //引数なしコンストラクタ
  38. course = 0;
  39. System.out.println("レーシングカーを作成");
  40. }
  41.  
  42. // public RacingCar(int n,double g,int c){ //引数ありしコンストラクタ
  43. // super(n,g); //スーパークラスの引数2個のコンストラクタ呼ぶ
  44. // course = c;
  45. // System.out.println("コース番号"+course+"のレーシングカーを作成");
  46. // }
  47.  
  48. public void setCourse(int c){
  49. course = c;
  50. System.out.println("コース番号を"+course+"にしました");
  51. }
  52.  
  53. public void show(){ //サブクラスのshow()メソッド
  54. System.out.println("レーシングカーのナンバーは"+num+"です");
  55. System.out.println("ガソリン量は"+gas+"です");
  56. System.out.println("コース番号"+course+"です");
  57. }
  58.  
  59. }
  60.  
  61. class Sample1{
  62. public static void main (String[] args) {
  63.  
  64. //サブクラスのオブジェクト作成
  65. Car car1 = new RacingCar(); //サブクラスのオブジェクトはスーパークラス型の変数でも扱える。
  66. car1.setCar(1234,20.5);
  67. car1.show();
  68. }
  69. }
Success #stdin #stdout 0.19s 60200KB
stdin
Standard input is empty
stdout
車を作成しました
レーシングカーを作成
ナンバーは1234、ガソリン量は20.5です
レーシングカーのナンバーは1234です
ガソリン量は20.5です
コース番号0です