小编she*_*lly的帖子

有没有办法在java中用父对象实例化子类?

我有一个基类说

class A {
   private String name;
   private String age;

   //setters and getters for same
}
Run Code Online (Sandbox Code Playgroud)

和一个儿童班说

class B extends A {
 private String phone;
 private String address;

  //setters and getters for same
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个A的实例,除此之外我还要在B中设置字段,所以代码就像,

A instanceOfA = gotAFromSomewhere();
B instanceOfB = constructBFrom(instanceOfA);
instanceOfB.setPhone(getPhoneFromSomewhere());
instanceOfB.setAddress(getAddressFromSomewhere());
Run Code Online (Sandbox Code Playgroud)

我可以用给定的A实例化B,但我不想这样做,

B constructBFrom(A instanceOfA) {
  final B instanceOfB = new B();
  instanceOfB.setName(instanceOfA.getName());
  instanceOfB.setPhone(instanceOfA.getAge());

  return B;
}
Run Code Online (Sandbox Code Playgroud)

相反,我喜欢有一些功能,它具有通用性,足以构造对象,如

public class SomeUtility {

   public static <T1, T2> T2 constructFrom(T1 instanceOfT1, Class<T2> className) {

      T2 instatnceOfT2 …
Run Code Online (Sandbox Code Playgroud)

java inheritance instantiation

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

inheritance ×1

instantiation ×1

java ×1