Java Sealed
 · 約2分
After Java 8, the interface of java have become more and more powerful.
- (Java 8) Default methods Provide optional functionality to all implementations
 - (Java 8) Static methods Utility methods that belong to the interface contract itself, CANNOT be overridden. utility functions that don't need instance context
 - (Java 9) Private methods: keeping internal helper logic hidden from implementers
 - Constants: Shared Contract Values public static final cannot be overriden
 - (Java 17) Sealed: Sealed means you can control exactly which classes can implement your interface (or extend your class). closed hierarchy, This enables better pattern matching, safer APIs, and clearer domain modeling!
 - (Java 8) @FunctionalInterface indicate this interface supports lambda.
 
Example:
public interface PaymentProcessor {
    // Abstract method - must be implemented
    void processPayment(double amount);
    
    // Default method - optional to override
    default void logTransaction(double amount) {
        System.out.println("Processing payment of: $" + amount);
        // Common logging logic here
    }
    
    // Another default method
    default boolean validateAmount(double amount) {
        return amount > 0 && amount < 10000;
    }
}
public abstract class AbstractPaymentProcessor {
    private int defaultAmount = 500;
    // Abstract method - must be implemented
    void processPayment(double amount);
    
    // Default method - optional to override
    void logTransaction(double amount) {
        System.out.println("Processing payment of: $" + amount);
        // Common logging logic here
    }
    
    // Another default method
    boolean validateAmount(double amount) {
        return amount > 0 && amount < 10000;
    }
}
