fork download
  1. using System;
  2. using Animals;
  3.  
  4. class Pet {
  5. static void Main(string[] args) {
  6. Animal[] pets = {
  7. new Dog("ぽち"),
  8. new Cat("たま", 1)
  9. };
  10.  
  11. foreach(Animal pet in pets) {
  12. pet.play();
  13. }
  14. }
  15. }
  16.  
  17. namespace Animals {
  18. abstract class Animal {
  19. protected string name;
  20.  
  21. public Animal(string name) {
  22. this.name = name;
  23. }
  24.  
  25. public virtual void play() { }
  26. }
  27.  
  28. class Dog : Animal {
  29. public Dog(string name) : base(name) {
  30. }
  31.  
  32. public override void play() {
  33. Console.WriteLine("わんわん!" + name + "だよ");
  34. }
  35. }
  36.  
  37. class Cat : Animal {
  38. private int sleep;
  39.  
  40. public Cat(string name, int sleep) : base(name) {
  41. this.sleep = sleep;
  42. }
  43.  
  44. public override void play() {
  45. Console.WriteLine("にゃあ!" + name + "だよ");
  46. if(sleep == 1) {
  47. Console.WriteLine("...でも寝る");
  48. }
  49. }
  50. }
  51. }
  52.  
Success #stdin #stdout 0.05s 28636KB
stdin
Standard input is empty
stdout
わんわん!ぽちだよ
にゃあ!たまだよ
...でも寝る