gpt4 book ai didi

c# - 创建抽象类不是浪费时间吗?

转载 作者:行者123 更新时间:2023-11-30 13:46:26 25 4
gpt4 key购买 nike

我对抽象类很困惑,我知道这不是与编程问题相关的问题。但这是我唯一可以找到解决方案的地方。
众所周知,抽象类不能被实例化,你不能在这些类中实现任何东西。我们可以只派生这些类,并可以在派生类中进行实现。所以我的问题是:

如果我们必须在派生类中实现逻辑并且我们必须在派生类中使用完整的函数和类,那么我们为什么要创建抽象类?

有人能给我一个明确的解释吗?如果有什么好的例子请告诉我

最佳答案

当您使用抽象类时,您在抽象类中有一些实现,但将特定于派生类的位保留为抽象。例如,我可能会为所有形状定义一个抽象类:

abstract class Shape
{
public int Sides{get;protected set;}
public abstract int CalculateArea();
}

所有形状都有特定数量的边,因此可以进入一般情况(即 Shape)。面积的计算取决于形状的类型(三角形、正方形等),因此是否属于派生类。但是,我希望我的类层次结构的用户能够从任何 Shape 实例调用 CalculateShape

我如何创建派生类并覆盖 CalculateLength:

class Square : Shape
{
public Square(int sideLength)
{
this.Sides = 4;
this.SideLength = sideLength;
}

public int SideLength{get;private set;}

public override int CalculateArea()
{
return this.SideLength * this.SideLength
}
}

请注意,我没有在 Square 中重新实现所有的 Shape,我只实现了 Square 的特定位。

关于c# - 创建抽象类不是浪费时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com