首页 / JAVA / Java上的字段继承
Java上的字段继承
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java上的字段继承,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1550字,纯文字阅读大概需要3分钟。
内容图文
![Java上的字段继承](/upload/InfoBanner/zyjiaocheng/803/4a26d80bd8134e7caeb53ffd93069487.jpg)
字段只继承“一级”吗?
我的意思是,如果我有一个类的Superclass,然后有一个Subclass,而Superclass有一个字段,Class将继承它,而Subclass则不会.它是否正确?
如果是的话,有没有办法让Subclass自动从Superclass继承该字段,因为据我所知,没有办法一次从两个类继承?
感谢任何花时间回答的人.我意识到我的问题可能是不切实际的,实际上你可能只是覆盖了这个领域或者某些东西,但我并没有尝试做任何具体的事情,只是试图了解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);
}
解决方法:
任何B类扩展A类,都会继承A的字段.如果C类扩展B,C将继承A和B中的所有非私有实例字段和方法,即传递性成立.
如果一个字段是私有的,那么就不能直接从子类中改变它;但是,你可以通过使用setter / getter方法解决这个问题.
如果字段受到保护,则子类可以直接访问它.
编辑1:
在评论中,您说该字段受到保护,但您仍然无法从子类访问它.我唯一能想到的是你有这样的情况:
class A
{
protected int x;
}
class B extends A
{
private int x;
}
class C extends B
{
private int z = x;
}
这不会起作用,因为通过在B中再次声明x,您将隐藏来自A的x字段.因此,现在C将x视为B的私有变量x,您无权访问它.
编辑2:
我不打算删除上面的编辑,因为它提供了丰富的信息,但是现在您发布了代码,这是因为您的SubClass实际上没有扩展任何内容(后来在编辑中修复了这个).
内容总结
以上是互联网集市为您收集整理的Java上的字段继承全部内容,希望文章能够帮你解决Java上的字段继承所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。