如何从超类的特定实例继承变量?

时间:2013-10-30 16:24:03

标签: java inheritance state instance-variables

如果我创建了一个超类的几个实例,其中状态被类构造函数设置为任意值,那么如何确保子类从超类的特定实例继承其状态?

3 个答案:

答案 0 :(得分:0)

  1. 确保实例变量是“public”,“package”,“protected”或没有这样的修饰符 - 如果它们是“私有”,则子类需要getter和setter方法来访问它们。
  2. 在使用超类而不是直接使用超类时,创建子类的实例。子类将继承这些状态值。

答案 1 :(得分:0)

使用实例是不可能的。您可以通过使用构造函数中的任意值创建超类(而不是实例)的子类,然后创建那些子类的子类来完成此操作。

答案 2 :(得分:0)

子类的每个实例都有自己的超类实例。所以:

public class Super
{
    protected int x;
    public Super( int x ) { this.x = x; }
}

public class Sub
{
    public Sub( int x ) { super( x ); }
    public void func() { System.out.println( x ); }

    public static void main( String[] args )
    {
        Sub a, b;
        a = new Sub( 1 );
        b = new Sub( 2 );
        a.func(); b.func();
    }
}

这将输出

1
2