从基类创建对象的简便方法

时间:2015-10-06 15:10:08

标签: java object constructor this

假设我们有:

class A {
}

以及

class B extends A {

  B(A object) {
    this = object; //this is not possible.
  }
}

众所周知,我们无法在Java(this)中为关键字设置任何值。有没有太简单的方法来创建与A对象具有相同字段值的B对象?

2 个答案:

答案 0 :(得分:2)

最简单的方法是逐个复制所有字段。没有更简单的方法。您可以编写一个工具来为您生成此代码。一般来说,这在Java中是可以避免的(可能因为它很痛苦并且容易出错)并且如果没有更简单的解决方案,则经常使用委派。即通常有另一种选择。

答案 1 :(得分:1)

这不能作为变量这是最后一个。所以你可以这样做:

public class A {

       private String hello;
       private String something;

       public A(String hello, String something){
          this.hello = hello;
          this.something = something;
       }

       public String getHello() {
          return hello;
       }

       public void setHello(String hello) {
          this.hello = hello;
        }

        public String getSomething() {
           return something;
        } 

        public void setSomething(String something) {
          this.something = something;
        }

}

然后您可以在B中使用A类,如下所示:

  public class B extends A{

      public B(A object) {
         super(object.getHello(),object.getSomething());
      }

  }