繁体   English   中英

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

[英]How do I inherit variables from specific instance of a superclass?

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM