C# 我们什么时候在C中创建这种类型的对象。。。?

C# 我们什么时候在C中创建这种类型的对象。。。?,c#,.net,oop,C#,.net,Oop,我在一些网站上看到过以下类型的场景。有人能帮我一下我们什么时候使用这种类型的场景吗 class emp { public void add() { MessageBox.Show("Emp class"); } } class dept : emp { public void disp() { MessageBox.Show("dept class"); } } emp ee = new dept(); 我只

我在一些网站上看到过以下类型的场景。有人能帮我一下我们什么时候使用这种类型的场景吗

class emp
{

    public void add()
    {
        MessageBox.Show("Emp class");
    }
}

class dept : emp
{
    public void disp()
    {
        MessageBox.Show("dept class");
    }
}

emp ee = new dept();
我只想知道我们什么时候创建这种类型的对象emp'ee=newdept'而不是 “emp ee=新emp” 谢谢
湿婆

上面的例子展示了遗传。继承是一个is A关系,在本例中dept是一个emp,这意味着无论何时代码使用emp,它都应该能够使用dept对象


向ee分配一个新的dept表明dept是一个emp,即使它可能会添加额外的功能,例如disp方法。

此处显示的过程称为继承

基本上所做的是将变量ee的类型声明为emp类型;这是合法的,因为类型dept与emp有一种is-a关系,大声说出来,它是,dept是emp的一种类型


当您希望接受从emp继承的任何变量(如类dept:emp声明所示)作为某种参数时,可以这样做。

您是指继承吗?如果这就是你要问的,你需要一本关于

没有理由使用dept上的disp方法。您可以选择:

emp ee=新部门; ee.add


这将调用emp中的add方法。

这显然是继承

在继承中,如果要同时使用派生类methoda和基类方法,则需要创建此对象


希望这有帮助

如果您想同时使用派生类方法A和基类方法,您需要创建此对象。

我们这样做是为了运行时多态性。当我们需要调用派生类方法时,但需要调用哪个派生类取决于基于用户输入的运行时。这是一个非常简单的例子:

static void Main(string[] args)
        {
            List<Shape> shapes = new List<Shape>();
            shapes.Add(new Circle());
            shapes.Add(new Square());
            shapes.Add(new Rectangle());

            foreach (Shape s in shapes)
                s.Draw();

            Console.Read();
        }

public class Shape
    {
        public virtual void Draw() { }

    }

    public class Square : Shape
    {
        public override void Draw()
        {
            // Code to draw square
            Console.WriteLine("Drawing a square");
        }
    }

    public class Circle : Shape
    {
        public override void Draw()
        {
            // Code to draw circle
            Console.WriteLine("Drawing a circle");

        }
    }

    public class Rectangle : Shape
    {
        public override void Draw()
        {
            // Code to draw circle
            Console.WriteLine("Drawing a rectangle");

        }
    }

*****Output:
Drawing a circle
Drawing a square
Drawing a rectangle*****

在实际场景中,用户可能在运行时确定要绘制的形状。因此,在实现时,您需要创建一个Shape类的对象,并根据用户在开关中的选择或其他情况为其指定一个圆、矩形或正方形。当你调用Shape.Draw时,它会调用相应的派生类方法。

如果你想得到比OO教程中的一段更具体的答案,你需要更清楚地回答你的问题。这是关于StackOverflow的大约50个问题的副本,例如:和最近提出的一个问题,尽管我找不到。投票关闭。我的意思是我们什么时候创建这种类型的对象..emp ee=new deptIt实际上是非常精确的继承多态性-