【问题标题】:Protected attribute and inheritance java受保护的属性和继承java
【发布时间】:2018-04-19 00:17:31
【问题描述】:

我是 Java 新手,我不明白为什么在 c3.java 中我在 ref.x=1 中出现错误。 x 被声明为受保护的属性,因此从 c1 继承的类的方法应该能够使用 c1 类型的任何对象的任何 x。那怎么错了? enter image description here

【问题讨论】:

  • 什么方法? C4 不继承任何东西。为什么它应该有权访问另一个类的受保护成员?

标签: java attributes parameter-passing


【解决方案1】:

这里的问题是该方法接受一个 C1 对象作为参数。这意味着该类无法更改其值。该方法不应访问对象的受保护属性。受保护的只是意味着属性是继承的,并且它们只存在于正在继承的类的对象中。因此,由于 C3 继承自 C1,C3 将 x 作为受保护变量,但它只能在类的方法中修改。 由于 C1 作为参数传递给类 C3 中的方法,您不在 C1 类中,因此无法修改 C1 对象的 x 变量。

【讨论】:

    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2016-04-18
    • 2016-02-18
    • 2011-03-11
    • 2011-06-06
    • 2010-10-26
    相关资源
    最近更新 更多