Which members are not inherited in a child class?
我想回答以下问题:
A child class would not inherit certain members of the parent class. Name three
such members.
我知道私有成员不会继承到子类,默认成员也不会继承到包外部。有人能完成答案吗?
编辑:我相信静态成员是根据下面的演示继承的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
来自JLS的班级成员
Constructors, static initializers, and instance initializers are not members and therefore are not inherited.
从Oracle Java文档中继承:
A subclass inherits all the members (fields, methods, and nested
classes) from its superclass. Constructors are not members, so they
are not inherited by subclasses, but the constructor of the superclass
can be invoked from the subclass
所以我认为你这里缺少了构造器。静态方法和字段也不会被继承,当它们在子类中被重写时,它们只是重用签名和
对于静态字段和方法的继承,请将此讨论称为Duncan的steted,此伟大的教程将覆盖vs隐藏
没有答案来说明术语的用法。
在子类中可见的成员在上面得到了回答。成员既是字段又是方法(每个都有自己的命名空间)。
继承作为子实例的一部分,是另一个问题:同样不可见的私有成员也是"继承"的。静态成员是类实例的一部分,不继承(也不能重写)。不能重写所有最终方法。
可论证的构造函数不是继承的;您必须在新的子构造函数中再次定义相同的签名。
类中的其他声明可以是类定义。在这里,关键字
构造函数和静态初始值设定项以及实例初始值设定项。
不能继承私有字段和构造函数。不能继承构造函数,因为它们不是超级类的成员。您可以从它的子类调用一个超类构造函数。您还可以访问超级类的私有成员,可以通过超级类的公共或保护方法访问。