📜  非抽象类不实现继承的抽象成员打字稿(1)

📅  最后修改于: 2023-12-03 15:28:52.958000             🧑  作者: Mango

非抽象类不实现继承的抽象成员

在面向对象的程序设计中,抽象类是一种特殊的类,它不能被实例化,只能被继承,且可以包含抽象方法。

抽象方法是一种没有实现的方法,只有方法的声明,抽象类中可以包含抽象方法,但是抽象类中也可以包含非抽象方法。一个类继承了抽象类,必须实现其所有的抽象方法,否则这个类也必须成为抽象类。

但是,在一个非抽象类中,如果包含了抽象成员(包括抽象方法,抽象属性和抽象事件),那么这个类必须成为抽象类。

示例
abstract class Shape
{
    public abstract double Area { get; }
    public abstract double Perimeter { get; }
}

class Rectangle : Shape
{
    public double Height { get; set; }
    public double Width { get; set; }

    public override double Area => Height * Width;

    public override double Perimeter => 2 * (Height + Width);
}

在上面的示例中,抽象类 Shape 中包含了两个抽象成员 AreaPerimeter,而另一个类 Rectangle 继承了 Shape,并实现了 AreaPerimeter,因此它不是抽象类。

总结

如果一个类包含了抽象成员,那么这个类必须成为抽象类。如果一个类继承了抽象类,那么这个类必须实现抽象类中的所有抽象成员,否则这个类也必须成为抽象类。抽象类是一种特殊的类,不能被实例化,只能被继承,并且可以包含抽象方法、抽象属性和抽象事件。