我是面向对象和编程的新领域.还有一些我仍在努力理解的事情.
例如,我有以下代码:
public abstract class ParentA
{
public virtual void MethodA()
{
Console.WriteLine("Doing somethin...");
}
}
public class DerivedClassA : ParentA
{
public override void MethodA()
{
Console.WriteLine("Doing something from derived...");
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我看到一些代码,其中类如下所示实例化:
ParentA p = new DerivedClassA();
p.MethodA();
Run Code Online (Sandbox Code Playgroud)
为什么不只是实例化您想要使用的实际类并使用它的成员?
DerivedClassA d = new DerivedClassA();
d.MethodA();
Run Code Online (Sandbox Code Playgroud)
我看到这使用了很多接口,其中写的是这样的:
public interface Animal
{
void Bark();
}
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("bark");
}
}
Run Code Online (Sandbox Code Playgroud)
然后以这种方式使用:
Animal a = new Dog();
a.Bark();
Run Code Online (Sandbox Code Playgroud)
为什么不这样做??:
Dog d = new …Run Code Online (Sandbox Code Playgroud)