问题描述
我是 Java 新手。 我有 CardDetails 类,它是我的 getCardDetails 方法的返回类型。 现在,场景是我有通用类(CardDetails)从方法 getCardDetails() 向我的 UI 返回结果。
public class CardDetails {
String cardNumber;
String cardCode;
String cardStatus;
String debitCardPrimaryAccountNumber;
String creditCardDescription;
String creditCardActionCode;
}
如果您看到类的最后一个字段 creditCardDescription 和 creditCardActionCode 属于信用卡,而 debitCardPrimaryAccountNumber 仅特定于 DebitCard。 现在,我可以使用哪种 OOP 概念,以便在信用卡的情况下我的类对象是:
public class CardDetails {
String cardNumber;
String cardCode;
String cardStatus;
String creditCardDescription;
String creditCardActionCode;
}
对于借记卡,则为:
public class CardDetails {
String cardNumber;
String cardCode;
String cardStatus;
String debitCardPrimaryAccountNumber;
}
因为我的返回类型始终是 CardDetails 类。
提前致谢!
解决方法
好的,所以您要实现的是典型的继承。您需要一个超类 CardDetails 和两个更具体的子类 CreditCardDetails 和 DebitCardDetails,它们将扩展 CardDetails 类。
这是您的超类卡片:
public class CardDetails {
String cardNumber;
String cardCode;
String cardStatus;
}
这是您的两个子类:
public class CreditCardDetails extends CardDetails {
String creditCardDescription;
String creditCardActionCode;
}
public class DebitCardDetails extends CardDetails {
String debitCardPrimaryAccountNumber;
}
为了更好地理解继承概念,它意味着 CreditCardDetails 和 DebitCardDetails 都从 CardDetails 类继承(扩展),这意味着它们包含在这种情况下 CardDetails 超类的所有属性和方法。此外,您的子类(CreditCardDetails 和 DebitCardDetails)有额外的属性,可能还有额外的方法,因为您可以添加它们。
如果这有帮助,请告诉我。 :)
,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;
}