【发布时间】:2013-11-10 09:19:52
【问题描述】:
如果我创建一个超类的多个实例,它们的状态由类构造函数设置为任意值,我如何确保子类从超类的特定实例继承其状态?
【问题讨论】:
标签: java inheritance state instance-variables
如果我创建一个超类的多个实例,它们的状态由类构造函数设置为任意值,我如何确保子类从超类的特定实例继承其状态?
【问题讨论】:
标签: java inheritance state instance-variables
【讨论】:
不可能使用实例。您可以通过使用构造函数中的任意值创建超类的子类(而不是实例)然后创建那些子类的子类。
【讨论】:
子类的每个实例都有它自己的超类实例。所以:
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
【讨论】: