title: ModelMapper get confuse on different properties
body: <p>I have a <code>Student</code> object extending <code>Person</code> object. </p>
  
  <pre><code>public abstract class Person implements IIdentifiable {
      private String contactNumber;
      // other properties
      public String getContactNumber() {
          return contactNumber;
      }
  
      public void setContactNumber(String contactNumber) {
          this.contactNumber = contactNumber;
      }
  }
  
  public class Student extends Person {
      private String studentNumber;
      //Other properties
      public String getStudentNumber() {
          return studentNumber;
      }
  
      public void setStudentNumber(String studentNumber) {
          this.studentNumber = studentNumber;
      }
  }
  </code></pre>
  
  <p>Student has a property <code>studentNumber</code> and person has a property <code>contactNumber</code>. When I map Student object to <code>StudentDto</code> it get confused on given properties. </p>
  
  <pre><code>public class StudentDto{
      private String studentNumber;
      public String getStudentNumber() {
          return studentNumber;
      }
  
      public void setStudentNumber(String studentNumber) {
          this.studentNumber = studentNumber;
      }
  }
  </code></pre>
  
  <p>This happens on certain occations only. I'm wondering what would be the reason</p>
  
  <pre><code>1) The destination property com.cinglevue.veip.web.dto.timetable.StudentDto.setStudentNumber() matches multiple source property hierarchies:
  com.cinglevue.veip.domain.core.student.StudentProfile.getStudent()/com.cinglevue.veip.domain.core.Person.getContactNumber()
  com.cinglevue.veip.domain.core.student.StudentProfile.getStudent()/com.cinglevue.veip.domain.core.Student.getStudentNumber()
  </code></pre>