java - 为什么 toString() 不能是静态方法?

标签 java class static access-modifiers

伙计们,我有一个简单但令人讨厌的问题。 据我所知,static 基本上意味着,对于那个类的每个实例,这个方法都是一样的,如果我们改变它,这个类的每个实例都会改变,它是也称为类方法。好吧,如果我有一个类实现了某种格式的 toString () 方法,让我们说:

public String toString() {  
    return "(" + x + "," + y + ")";
}

为什么不能设置成static呢?由于该格式对于该类的每个实例都是相同的...?

最佳答案

这不仅适用于 toString()

Java Language Specification

It is a compile-time error if a static method hides an instance method.

自实例方法toString()隐式继承自 Object , 声明一个方法 toString()作为static在子类型中导致编译时错误。

从面向对象的角度来看,请参阅此问题的其他答案或 related问题。

关于java - 为什么 toString() 不能是静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601933/

相关文章:

java - pom.xml中如何添加jar文件依赖

java - 序列化 HashMap 但输入文本文件会在每次程序运行时清除自身。 -- java

java - Eclipse IDE,Blue Scope WTF

python - 在 Python 中管理实例

c++ - 推送到自定义堆栈类卡住 .exe

c++ - 为什么这个 c++ 数组运算符的读取变体在一个类中没有被调用

Java TCP 分割数据包

c++ - 关于 C++ 中的局部和全局静态变量

java - 在 xtned 中导入静态方法(生成的 java)

java - 在 void 方法中更改变量?