【问题标题】:Do subclasses have all the properties and methods of the parent class? [duplicate]子类是否具有父类的所有属性和方法? [复制]
【发布时间】:2017-05-16 01:13:33
【问题描述】:

子类是否拥有父类的所有变量和方法?包括父类的Private属性和方法?

或者子类是否只有父类的可访问变量和方法?喜欢公共、默认、保护?

【问题讨论】:

  • 我的问题会被删除吗?

标签: java


【解决方案1】:

来自Java Language Specification, 8.2

一个类类型的成员都有以下几种:

  • 从其直接超类(第 8.1.4 节)继承的成员,但在没有直接超类的 Object 类中除外

  • 从任何直接超接口继承的成员 (§8.1.5)

  • 在类主体中声明的成员(第 8.1.6 节)

关于继承的重要部分,关于privatepublicprotected成员:

声明为私有的类的成员不会被该类的子类继承。**

  • 只有声明为 protected 或 public 的类的成员才能被子类继承,该子类在声明该类的包之外的包中声明。

  • 构造函数、静态初始化器和实例初始化器不是成员,因此不会被继承。

【讨论】:

  • 谢谢!依据是什么?
  • 不,子类不继承私有方法和字段。我手头没有 JLS,但它非常明确地说“私有字段不被继承”等。
  • 这里是,JLS sec 8.2:“声明为私有的类的成员不会被该类的子类继承。”
  • @Andy Turner,谢谢,查找并更新了答案
  • @AndyTurner 我想找问题,有类似的问题。因为我英文不好,想好好看看,再讨论。非常感谢。click here
【解决方案2】:

子类不能访问父类private 属性(字段)和方法。它只能访问publicprotecteddefault 属性和方法。

【讨论】:

  • 谢谢!子类是否继承所有字段和方法?还是一部分?
  • 所有非私有的字段和方法都可以在子类中访问。请注意,我们在这里讨论的是可访问性,而不是方法覆盖。
  • 我知道可访问性,我只想知道私有字段和方法是否被继承
  • 我想找问题,有类似的问题。因为我英文不好,想好好看看,再讨论。非常感谢link
猜你喜欢
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 2018-06-14
  • 2016-04-24
  • 2020-08-03
  • 2022-06-10
相关资源
最近更新 更多