fork download
  1. //抽象クラス
  2. abstract class Vehicle{
  3. protected int speed;
  4. public void setSpeed(int s){
  5. speed = s;
  6. System.out.println("速度を"+speed+"にしました。");
  7. }
  8.  
  9. //抽象メソッド
  10. abstract void show();
  11. }
  12.  
  13. //サブクラス
  14. class Car extends Vehicle{
  15. private int num;
  16. private double gas;
  17.  
  18. public Car(int n,double g){
  19. num = n;
  20. gas = g;
  21. System.out.println("ナンバーを"+num+"、ガソリン量"+gas+"の車を作成しました。");
  22. }
  23.  
  24. //抽象クラスのshow()を定義
  25. public void show(){
  26. System.out.println("車のナンバーは"+num+"です。");
  27. System.out.println("ガソリン量は"+gas+"です。");
  28. System.out.println("速度は"+speed+"です。");
  29. }
  30. }
  31. //抽象クラスを拡張
  32. class Plane extends Vehicle{
  33. private int flight;
  34.  
  35. public Plane(int f){
  36. flight = f;
  37. System.out.println("便"+flight+"の飛行機を作成しました。。");
  38. }
  39.  
  40. //抽象クラスのshow()を定義
  41. public void show(){
  42. System.out.println("飛行機の便は"+flight+"です。");
  43. System.out.println("速度は"+speed+"です。");
  44. }
  45. }
  46.  
  47. class Main{
  48. public static void main (String[] args){
  49. //抽象クラスの配列用意
  50. Vehicle[] vc;
  51. vc = new Vehicle[2];
  52.  
  53. //1番目のオブジェクトはCarクラス
  54. vc[0] = new Car(1234,20.5);
  55. vc[0].setSpeed(60);
  56.  
  57. //2番目のオブジェクトはPlaneクラス
  58. vc[1] = new Plane(232);
  59. vc[1].setSpeed(500);
  60.  
  61. for(int i =0;i<vc.length;i++){
  62. vc[i].show();
  63. }
  64. }
  65. }
Success #stdin #stdout 0.27s 60116KB
stdin
Standard input is empty
stdout
ナンバーを1234、ガソリン量20.5の車を作成しました。
速度を60にしました。
便232の飛行機を作成しました。。
速度を500にしました。
車のナンバーは1234です。
ガソリン量は20.5です。
速度は60です。
飛行機の便は232です。
速度は500です。