CSS 116. Activity 1
CSS 116. Activity 1
Activity 1
Requirements:
1. Abstract Class: Payment
○ Represents a generic payment.
○ Properties:
■ amount (double)
■ transactionId (String)
○ Constructor: Initializes the amount and generates a unique transactionId.
○ Abstract Method:
■ processPayment() (void) – Must be implemented by subclasses to
define how the payment is processed.
○ Non-Abstract Methods:
■ displayDetails() – Prints the transaction details in the format:
"Transaction ID: <transactionId>, Amount: <amount>".
3. Classes:
○ CreditCardPayment (inherits Payment, implements Refundable)
■ Extra Property: cardNumber (String)
■ Implements processPayment(): Prints "Processing credit card
payment of <amount>".
■ Implements refund(): Prints "Refunding credit card payment
for transaction <transactionId>".
○ DebitCardPayment (inherits Payment, implements Refundable)
■ Extra Property: cardNumber (String)
■ Implements processPayment(): Prints "Processing debit card
payment of <amount>".
■ Implements refund(): Prints "Refunding debit card payment
for transaction <transactionId>".
○ WalletPayment (inherits Payment)
■ Extra Property: walletProvider (String)
■ Implements processPayment(): Prints "Processing wallet
payment of <amount> via <walletProvider>".