Effective Java (Joshua Bloch) Item 17 说:
“设计和记录或继承或禁止它”
但是,只要粗略浏览一下 Android API,就会发现大多数 API 类都不是最终的。如果它们也被记录为继承(例如),那是可以View
的。Activity
但是也有几个非最终类,但是文档没有提到这些类的可继承性。只是一些随意的例子来说明我的观点:
- 代表系统服务的类 (
WifiManager
,NotificationManager
...) - 实用程序类,如
UriMatcher
. - 一些特定于硬件的类,例如
Camera
.
开放性和可扩展性是 Android 的哲学,这里的约定是否颠倒了?意思是,可以假设所有Android API 类都被设计为可继承的(无论是否明确记录);除非宣布最终?