Java 哪些成员不是在子类中继承的?

Java 哪些成员不是在子类中继承的?,java,class,inheritance,subclass,Java,Class,Inheritance,Subclass,我试图回答以下问题: 子类不会继承父类的某些成员。说出三个 这些成员 我知道私有成员不会继承到子类,默认成员也不会继承到包之外。有人能完成答案吗 编辑:- 我相信静态成员是根据下面的演示继承的 public class sup { public static void main(String agr[]){ } protected static int staticInt=0; protected final int finalInt=3; protec

我试图回答以下问题:

子类不会继承父类的某些成员。说出三个 这些成员

我知道私有成员不会继承到子类,默认成员也不会继承到包之外。有人能完成答案吗

编辑:- 我相信静态成员是根据下面的演示继承的

public class sup {
    public static void main(String agr[]){
    }

    protected static int staticInt=0;
    protected final int finalInt=3;
    protected int protectedInt=0;
    public String publicString = "";
    private int privateInt=8;
}

class sub extends sup{
    public void del(){
        staticInt=1;
        staticInt=finalInt;
    }
}

构造函数、静态初始值设定项和实例初始值设定项

来自Oracle Java文档,用于:

子类继承所有成员(字段、方法和嵌套 类)从其超类构造函数不是成员,因此 不是由子类继承的,而是由超类的构造函数继承的 可以从子类调用

所以我认为你们这里缺少构造器。 静态方法和字段也不会被继承,当它们在子类中重写时,它们只是重用签名,并在父类中隐藏方法/字段的实现

关于静态字段和方法的继承,请参阅Duncan编写的本教程和

构造函数、静态初始值设定项和实例初始值设定项不是成员,因此不会被继承


不能继承私有字段和构造函数。
无法继承构造函数,因为它们不是超类的成员。您可以从它的子类调用一个超类构造函数。您还可以通过超类的公共或受保护方法访问超类的私有成员。

无答案说明术语的用法

上面回答了在子类中可见的成员成员既是字段又是方法(每个都有自己的名称空间)

继承作为子实例的一部分,是另一个问题:不可见的私有成员也是“继承”的。静态成员是类实例的一部分,不会被继承(也不能被重写)。无法覆盖所有最终方法

可论证的构造函数不被继承;您必须在新的子构造函数中再次定义相同的签名


类中的其他声明可以是类定义。在这里,关键字
static
具有不同的含义,人们可能会对可见性/继承性做出明显的声明。例如,对于非静态的内部类,它有一个
。这个
(递归概念)。

你能解释为什么静态成员不被继承吗?我想这是一个术语,这里讨论的静态方法和实例方法之间有一些细微的区别:静态成员是继承的。我用示例程序测试它。你是说可见性吗?继承和可见性是两件不同的事情。静态成员可能可见,但不能覆盖它们。@Eugene我仍然不相信你可以说静态方法不是继承的。您是否有明确说明的来源?@Eugene参见JLS()中的示例8.2-3。这表明静态字段是继承的。请参阅以下讨论:。这与你的最后一段不一致。@Duncan谢谢你,伙计!!我刚刚发现了覆盖和隐藏之间的区别:)叮叮!最后,正确答案也来自JLS:-)@Duncan o darn!:)这确实是完全正确的答案。我怎么会错过那个+继承1-1个静态成员。见其他答案下的讨论。