2 votes

Comment une classe java peut-elle envoyer ses paramètres en fonction des besoins ?

Je suis novice en Java. J'ai la classe CardDetails qui est un type de retour de ma méthode getCardDetails. Maintenant, le scénario est que j'ai une classe commune (CardDetails) pour retourner un résultat à mon interface utilisateur à partir de la méthode getCardDetails().

public class CardDetails {
    String cardNumber;
    String cardCode;
    String cardStatus;
    String debitCardPrimaryAccountNumber;
    String creditCardDescription;
    String creditCardActionCode;
}

Si vous voyez la classe, les derniers champs creditCardDescription et creditCardActionCode sont de la carte de crédit et debitCardPrimaryAccountNumber est seulement spécifique à DebitCard. Maintenant, quel concept de POO je peux utiliser pour que dans le cas de la carte de crédit ma classe objet soit :

public class CardDetails {
    String cardNumber;
    String cardCode;
    String cardStatus;
    String creditCardDescription;
    String creditCardActionCode;
}

et pour la carte de débit, ce serait :

public class CardDetails {
    String cardNumber;
    String cardCode;
    String cardStatus;
    String debitCardPrimaryAccountNumber;
}

Comme mon type de retour sera toujours la classe CardDetails.

Merci d'avance !

4voto

Tomino Points 435

Ok, donc ce que vous essayez d'obtenir est typique héritage . Vous avez besoin d'une super classe CardDetails et de deux sous-classes plus spécifiques CreditCardDetails et DebitCardDetails qui étendent la classe CardDetails.

Voici votre superclasse Card :

public class CardDetails {
    String cardNumber;
    String cardCode;
    String cardStatus;
}

Voici vos deux sous-classes :

public class CreditCardDetails extends CardDetails {
    String creditCardDescription;
    String creditCardActionCode;
}

public class DebitCardDetails extends CardDetails {
    String debitCardPrimaryAccountNumber;
}

Pour mieux comprendre le concept d'héritage, cela signifie que CreditCardDetails et DebitCardDetails héritent (étendent) tous deux de la classe CardDetails, ce qui signifie qu'ils contiennent tous les attributs et méthodes de la superclasse, en l'occurrence CardDetails. En outre, vos sous-classes (CreditCardDetails et DebitCardDetails) ont des attributs supplémentaires et probablement des méthodes supplémentaires que vous pouvez ajouter.

Faites-moi savoir si ça vous a aidé. :)

-1voto

public class CardDetails {
    String cardNumber;
    String cardCode;
    String cardStatus;
}

public class CreditCard extends CardDetails {
    String creditCardDescription;
    String creditCardActionCode;
}

public class DebitCard extends CardDetails {
    String debitCardPrimaryAccountNumber;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X