fork download
  1. //抽象類別
  2. abstract class AbsClass
  3. {
  4. public void pubMethod() { }
  5. public virtual void virMethod() { } //virtual: 虛擬方法
  6. public abstract void abcMethod(); //abstract: 抽象方法 -> 只能定義,不能有內容
  7. }
  8.  
  9. //一般類別
  10. class GenClass
  11. {
  12. public void pubMethod() { }
  13. public virtual void virMethod() { }
  14. //public abstract void abcMethod(); //抽象方法只能在抽象類別中定義
  15. }
  16.  
  17. //繼承一般類別
  18. class MyClass1 : GenClass
  19. {
  20. //1. 在繼承一般類別時,一般的方法不可以被覆寫
  21. //public override void pubMethod(){ }
  22.  
  23. //2. 但是,可以用 new 修飾詞來隱藏父類別中的這個方法,
  24. public new void pubMethod(){ }
  25.  
  26. //3. 父類別中的虛擬方法才可以被覆寫
  27. public override void virMethod(){ }
  28. }
  29.  
  30. //繼承抽象類別
  31. class MyClass2 : AbsClass
  32. {
  33. //4. 繼承抽象類別, 就一定要實作它的抽象方法, 同樣是以覆寫的方式來做.
  34. public override void abcMethod() { }
  35. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cs(24,32): error CS1056: Unexpected character `{'
prog.cs(24,34): error CS1056: Unexpected character `}'
prog.cs(27,4): error CS1525: Unexpected symbol `public', expecting `;', `{', `=>', or `where'
prog.cs(27,37): error CS1056: Unexpected character `{'
prog.cs(27,39): error CS1056: Unexpected character `}'
prog.cs(28,0): error CS1525: Unexpected symbol `}', expecting `;', `{', `=>', or `where'
Compilation failed: 6 error(s), 0 warnings
stdout
Standard output is empty