SOLID Principles in JavaScript

Which SOLID principle is being applied in this payment processing implementation?
interface PaymentStrategy {
  process(amount: number): Promise<void>;
}

class CreditCardPayment implements PaymentStrategy {
  process(amount: number) { /* ... */ }
}

class PayPalPayment implements PaymentStrategy {
  process(amount: number) { /* ... */ }
}

class CryptoPayment implements PaymentStrategy {
  process(amount: number) { /* ... */ }
}

class PaymentProcessor {
  constructor(private strategy: PaymentStrategy) {}

  processPayment(amount: number) {
    return this.strategy.process(amount);
  }
}
Next Question (16/20)