יען dynamic binding. ב-Java גם קריאות למתודות מתוך בנאים נקבעות לפי הטיפוס הדינאמי של האוביקט שעכשיו בתהליך יצירה, אפילו אם המחלקה שהגדירה את הגרסא של המתודה שתיקרא טרם אותחלה עד הסוף. כשמגיעים לבנאי של Shape ויש קריאה ל-addValue, הגרסא של addValue שתיבחר היא הגרסא של Square (כי זה הטיפוס הדינאמי) ולא הגרסא של Shape.