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