Créer une instance à partir d'une instance de superclasse

Considérons le cas suivant:

class A {
  int x;
  int y;
}

class B extends A {
  int z;
}

Maintenant, quelque part dans le code de cette classes sont utilisées comme ceci:

A objA = getAFromSomewhere();
B objB = null;

Et dans une certaine situation, je veux faire quelque chose comme

objB = objA; //can't do this
objB.z = someZ;

Bien sûr, la réalité, les objets sont un peu plus compliquée, ce n'est pas seulement à propos de la copie de deux entiers. Mais ils ne sont pas trop complexes, soit.

Je sais que je peux écrire un constructeur de B comme ceci:

public B(A anA) {
  this.a = anA.a;
  this.b = anA.b;

  this.z = 0;
}

Mais si c'est vraiment la seule façon, je préfère fusionner les membres supplémentaires de B dans A.

mise à jour en considérant les réponses

Ma question n'était pas suffisamment claire. Je comprends que objB = objA; ne peuvent pas travailler (donc j'ai demandé "quelque chose comme", ce qui signifie quelque chose de comparable avec la complexité du code) et je connais les problèmes avec une faible vs profonde des copies.
Ce que je cherchais est la possibilité de copier les membres d'une classe de base (disons à l'aide de clone()). Vous pouvez comprendre que la copie de chaque membre manuellement est une mauvaise solution, car cela ajoute à la complexité et la redondance du code. Merci pour vos réponses en tout cas!

source d'informationauteur didi_X8