Example
public class CustomPermission extends BasicPermission {
public CustomPermission(String name,List properties) {
super(name);
this .properties = properties;
}

public boolean implies(Permission permission) {
CustomPermission perm = (CustomPermission) permission;
return perm.properties.containsAll(properties);
}

private List properties;
}

Solution
Declare the class final.
public final class CustomPermission extends BasicPermission {
public CustomPermission(String name,List properties) {
super(name);
this .properties = properties;
}

public boolean implies(Permission permission) {
CustomPermission perm = (CustomPermission) permission;
return perm.properties.containsAll(properties);
}

private List properties;
}