Assume I have two classes:
class 1:
class Person{
    String name;
    int age;
    public Person(){}
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
    @Override
    String toString(){
        return "Name: "+name + "\tAge: "+age;
    }
}
class 2
class Animal{
    String name;
    int age;
    public Animal(){}
    public Animal(String name, int age){
        this.name = name;
        this.age = age;
    }
    @Override
    String toString(){
        return "Name: "+name + "\tAge: "+age;
    }
}
And I create a List Object to stored 2 classes Person and Animal
List newList = new ArrayList<>();
newList.add( new Person("person", 20);
newList.add( new Person("aPerson",20);
newList.add( new Animal("animal",20);
newList.add( new Animal("aAnimal",20);
Now i want sort newList by name but i don't know how to do it.
With one Class I can Create Class SortByName and compare name between two Object, But with two Class i can not