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实际上是非常精确的继承多态性-