static-methods - 是否可以使用对象调用静态方法?
问题描述
这可能是一个基本问题,但请任何人回答。我们知道静态成员属于类,我们可以使用类名来调用它们。但在下面的示例中,我们使用引用调用静态方法。
class One
{
static void show()
{
System.out.println("one");
}
}
class Two extends One
{
static void show()
{
System.out.println("Two");
}
}
public class RuntimePoly
{
public static void main(String[] args)
{
One o=new Two();
o.show();
}
}
我得到正确的输出。
解决方案
静态方法仍然是一种方法。
来自维基百科:
面向对象编程 (OOP) 中的方法是与消息和对象相关联的过程
它是静态的,因为它实际上并不使用与之关联的对象,但仍然是“与 [...] 对象关联的过程”。静态调用A.b()
也可以((A) null).b()
(用 Java)编写,因为该实例从未使用过,并且更明确地显示了方法解析的来源。
推荐阅读
- node.js - 如果在子节点中搜索,在 nodejs + xpath-Module 上使用 xpath 的正确方法是什么?
- python - 如何查找 DynamoDB 表上的总点击量
- c# - 自定义类型属性的设计时间序列化
- apache-spark - Spark local rdd 写入本地 Cassandra DB
- python - 代码的输出格式不正确 我正在使用 python 3.9 并使用 subprocess 模块运行命令行
- eclipse - Eclipse RCP 自动化
- javascript - 无法在 ReactJS 登录页面中获取更新的状态
- android-studio - 我可以在不同的系统中使用相同的密钥库吗?
- python - Python3 - CREATE TABLE IF NOT EXISTS SQL 行给定一个示例机器名称
- angular - TypeError:无法读取未定义 DataTable Angular 的属性“样式”