Heredar modelo con diferentes nombres de propiedades JSON

Tengo una clase, digamosPerson, que quiero llenar desde JSON usando Jackson, pero los nombres de las propiedades varían según la fuente. Así es como se ve el código actualmente:

class Person {
    protected String firstName;
    protected String lastName;
    protected String address;

    public abstract void setFirstName(String firstName);
    public abstract void setLastName(String lastName);
    public abstract void setAddress(String address);

    // getters etc.
}

class PersonFormat1 extends Person {
    @Override
    @JsonProperty("firstName")
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @Override
    @JsonProperty("lastName")
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Override("address")
    public void setAddress(String address) {
        this.address = address;
    }
}

class PersonFormat2 extends Person {
    @Override
    @JsonProperty("fName")
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @Override
    @JsonProperty("lName")
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Override("addr")
    public void setAddress(String address) {
        this.address = address;
    }
}

Como puedes ver,PersonFormat1 yPersonFormat2 son idénticos en estructura, pero necesito diferentes subclases para especificar diferentes nombres de propiedades.

¿Hay alguna forma de hacer cumplir el modelo sin la repetición de tener que redeclarar y reimplementar cada método?

Respuestas a la pregunta(1)

Su respuesta a la pregunta