小编New*_*667的帖子

使用c#的基本对象引用和使用问题

我是面向对象和编程的新领域.还有一些我仍在努力理解的事情.

例如,我有以下代码:

 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)

c# oop object

2
推荐指数
2
解决办法
242
查看次数

标签 统计

c# ×1

object ×1

oop ×1