【发布时间】:2012-02-25 22:46:06
【问题描述】:
到目前为止,编译器似乎并不介意,但我只是想通过在我的抽象类中实现某些方法来仔细检查我是否以任何方式为失败做好准备。
【问题讨论】:
到目前为止,编译器似乎并不介意,但我只是想通过在我的抽象类中实现某些方法来仔细检查我是否以任何方式为失败做好准备。
【问题讨论】:
一个抽象类通常有一个或多个抽象方法。所以是的,它可以实现一些方法。目标是强制用户实现这些方法以使对象正常工作。有时抽象类用于提供某些接口的“基本”实现,让最终用户只指定关键方法。您也可以拥有一个没有任何抽象方法的抽象类:在这种情况下,您断言必须从该类派生才能使用它。
【讨论】:
在抽象类中有一些实现是很常见的。
如果根本没有实现,请考虑使用接口而不是抽象类。
【讨论】:
完全可以实现一些方法而让其他方法保持抽象。
如果所有方法都必须是抽象的,那么你不妨使用一个接口。
【讨论】:
是的。 abstract 类不能被实例化(你必须实例化一个继承自抽象类的类),但它可以包含实现。
【讨论】:
这很好并且被允许,abstract class 至少有一个成员(方法/属性)未实现,因此无法实例化。
interface 也称为 pure abstract class,这意味着它是 100% 抽象的,因此不允许您指定任何实现。
请记住,有很多文章和意见关于从不从另一个具体类派生一个具体类,而只能从抽象类派生......至少这是几年前 C++ 的趋势,然后我转向C# 方面,开始工作更多,没有时间继续阅读那些好文章... :)
【讨论】: