Constructor de copia de subclase que tiene sus propias variables

user10307826:

Tengo una subclase llamada CuentaCD que tiene sus propias variables que no están definidos en la superclase.

private Calendar maturityDate;
private int termOfCD;

La subclase también tiene un constructor de copia que lleva en un objeto superclase.

public CDAccount(Account cd){
    super(cd);
}

Este constructor es llamado por esta línea de código que está en una clase diferente.

if (accounts.get(index).getType().equals("CD")) {
return new CDAccount(accounts.get(index));
}

Estoy buscando una manera de establecer las variables de subclases en el constructor de copia. Pensé que iba a ser capaz de hacerlo con el objeto que se necesita en este ejemplo porque ha creado el objeto como un objeto subclase antes de colocarlo en la matriz de los objetos de la superclase.

Zimmerman:

Fundición debe hacer el truco para usted:

public CDAccount(Account cd) {
    super(cd);
    if(cd instanceof CDAccount) {
        this.maturityDate = ((CDAccount)cd).maturityDate;
        this.termOfCD=((CDAccount)cd).termOfCD;
    }
    else {
        this.maturityDate = null;
        this.termOfCD= null;
    }
}

Esto funciona porque de la forma en la encapsulación se implementa en Java: variables privadas son accesibles a otras instancias de la misma clase.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=181967&siteId=1
Recomendado
Clasificación