The manifold project[1] for Java provides that feature as "Structural Interfaces" which supports polymorphic variants.
The project also supports tuples that behave similarly.
var person = (name: "Joe", age: 35);
. . .
Person p = person; // tuple's name, age properties satisfy Person record
1. https://github.com/manifold-systems/manifold