【发布时间】:2013-07-17 16:34:06
【问题描述】:
字段是否只继承“上一级”?
我的意思是,如果我有一个超类到一个类,然后它有一个子类,并且超类有一个字段,那么类将继承它而子类不会。它是否正确?
如果是这样,有没有办法让子类自动从超类继承字段,因为据我了解,没有办法同时从两个类继承?
感谢任何花时间回答的人。我意识到我的问题可能不切实际,实际上您可能只是覆盖了该字段或其他内容,但我并没有尝试做任何具体的事情,只是想了解 Java 的工作原理。谢谢。
这是我的代码:
public class SuperClass {
protected int entero;
protected void method(){
entero=1;
}
public class SubClass extends Class {
public SubClass(){}
}
public class Class extends SuperClass {
public Class(){}
}
public static void main(String[] args){
Class object= new Class();
SubClass subobject= new SubClass();
/*This is where I get an error, why?*/
subobject.entero=2;
/*This one is fine*/
object.entero=2;
object.method();
System.out.println(object.entero);
}
【问题讨论】:
-
我假设您在谈论受保护的字段,是吗?
-
你能澄清一下这行的意思吗:“我有一个超类到一个类,然后有一个子类,超类有一个字段,类将继承它,子类将不会”吨。”这有点模棱两可。
-
@SteveP。
class SuperClass { protected int x; } class Class extends SuperClass {} class SubClass extends Class { }澄清了吗? -
您不能覆盖字段。请告诉我们您要解决的问题,最好是使用代码。
-
您的子类不扩展类或超类。这就是它没有任何
entero字段的原因。
标签: java inheritance field