88. Implementing interfaces in records
Java records cannot extend another class but they can implement any interface exactly as a typical class. Let's consider the following interface:
public interface PestInspector {
  public default boolean detectPest() {
    return Math.random() > 0.5d;
  }
  public void exterminatePest();
}
The following snippet of code is a straightforward usage of this interface:
public record MelonRecord(String type, float weight)  
       implements PestInspector {
      
  @Override
  public void exterminatePest() { 
     
    if (detectPest()) {
      System.out.println("All pests have been exterminated");
    } else {
      System.out.println(
        "This melon is clean, no pests have been found");
    }
  }
}
Notice that the code overrides the abstract method exterminatePest() and calls the default method detectPest().