【发布时间】:2014-10-09 13:01:18
【问题描述】:
这种 OOP 方法注定要失败还是有什么好处?
在我理解抽象类之前,通过使用接口类 + 实现接口的某些方法的常规类,我或多或少地获得了代码重用的相同好处。例如
public interface IMyService
{
String Helloword1();
String Helloword2();
String Helloword3();
}
public class MyService
{
public String Helloword1(){return "1";}
public String Helloword2(){return "2";}
//Helloworld3 is not here so I would be forced to provide implementation in any subclass
//very similar to calling abstract on a method
}
public class SubClass1: MyService, IMyService
{
public String Helloword3(){return "3";}
}
public class SubClass2: MyService, IMyService
{
public new String Helloword2(){return "override method";}
public String Helloword3(){return "3";}
}
任何人都可以看到这样做有什么好处,或者这真的提供了与抽象类相同的好处吗?
【问题讨论】:
-
请注意
SubClass2.Helloword2()隐藏MyService.Helloword2(),它不会覆盖它。
标签: c# oop interface polymorphism abstract