在没有实现的情况下,抽象方法如何工作?
How do abstract methods work when there is no implementation?
根据这个定义我知道什么是 abstract method
和 abstract class
:
抽象方法:
An abstract method is a method that is declared without an
implementation
摘要class:
An abstract class is a class that is declared abstract—it may or may
not include abstract methods
所以,android
中有很多abstract classes
和abstract methods
例如其中之一是 ActionBar
class
其中 abstract method
是 setSubtitle(int resId)
现在,如果您想为 activity 设置字幕,请执行以下操作:
getActionBar().setSubtitle(R.string.subtitle);
其中 getActionBar
returns 一个具有抽象方法的 ActionBar。但是当 setSubtitle
方法没有实现时它是如何工作的?
总是有一个实现,但它只是没有定义接口或抽象class你的引用是一个类型。
相反,必须有一个子class实现或继承每个方法的实现。
它 "doesn't" 无需实施即可工作;无法创建抽象实例 class,这是抽象方法的要求。
实际创建的对象 - 不能从抽象 class 创建,而是从其具体子类型创建 - 因此有一个通过调用的实现subtype polymorphism.
在这种情况下 getActionbar
returns 从 ActionBar
的子类型创建的对象。检查生成的操作栏对象 - 例如。查看 getActionbar().getClass()
- 将显示返回的对象实际是什么具体类型。来自 Activity.getActionBar method source this is expected to have a type of ActionBarImpl
.
根据这个定义我知道什么是 abstract method
和 abstract class
:
抽象方法:
An abstract method is a method that is declared without an implementation
摘要class:
An abstract class is a class that is declared abstract—it may or may not include abstract methods
所以,android
中有很多abstract classes
和abstract methods
例如其中之一是 ActionBar
class
其中 abstract method
是 setSubtitle(int resId)
现在,如果您想为 activity 设置字幕,请执行以下操作:
getActionBar().setSubtitle(R.string.subtitle);
其中 getActionBar
returns 一个具有抽象方法的 ActionBar。但是当 setSubtitle
方法没有实现时它是如何工作的?
总是有一个实现,但它只是没有定义接口或抽象class你的引用是一个类型。
相反,必须有一个子class实现或继承每个方法的实现。
它 "doesn't" 无需实施即可工作;无法创建抽象实例 class,这是抽象方法的要求。
实际创建的对象 - 不能从抽象 class 创建,而是从其具体子类型创建 - 因此有一个通过调用的实现subtype polymorphism.
在这种情况下 getActionbar
returns 从 ActionBar
的子类型创建的对象。检查生成的操作栏对象 - 例如。查看 getActionbar().getClass()
- 将显示返回的对象实际是什么具体类型。来自 Activity.getActionBar method source this is expected to have a type of ActionBarImpl
.