研究 2 代码片段
片段1:
interface Int1{
String str = "123";
}
class Pparent{
String str = "123";
}
class F extends Pparent implements Int1{
}
此代码编译正常。
片段2
class Pparent{
String str = "123";
public static String str = "123";
}
结果:带有消息的编译错误
variable str is already defined in class
解析度
对我来说,两个片段看起来都一样。
为什么我看到不同的结果
Abimaran Kugathasan 更新
你说:
接口中的字段是隐式公共静态的,并且没有继承到子类
反例:
interface Int1{
String str = "123";
}
class F implements Int1{
public static void main(String[] args) {
System.out.println(F.str);
}
}
我不能这样写
class F extends Pparent implements Int1{
public static void main(String[] args) {
System.out.println(str);
}
}
为什么?我只处理静态内容。