ये संबंध मुख्य रूप से उपयोग पर आधारित होते हैं। यह निर्धारित करता है कि क्या एक निश्चित वर्ग HAS-A निश्चित चीज है। यह संबंध कोड के साथ-साथ बग के दोहराव को कम करने में मदद करता है।
आइए एक उदाहरण देखें -
उदाहरण
public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }
इससे पता चलता है कि क्लास वैन HAS-A स्पीड। स्पीड के लिए एक अलग क्लास होने से, हमें वैन क्लास के अंदर स्पीड से संबंधित पूरा कोड डालने की ज़रूरत नहीं है, जिससे स्पीड क्लास को कई अनुप्रयोगों में पुन:उपयोग करना संभव हो जाता है।
ऑब्जेक्ट-ओरिएंटेड फीचर में यूजर्स को इस बात से परेशान होने की जरूरत नहीं है कि कौन सा ऑब्जेक्ट असली काम कर रहा है। इसे प्राप्त करने के लिए, वैन वर्ग वैन वर्ग के उपयोगकर्ताओं से कार्यान्वयन विवरण छुपाता है। तो, मूल रूप से क्या होता है कि उपयोगकर्ता वैन वर्ग को एक निश्चित क्रिया करने के लिए कहेंगे और वैन वर्ग या तो स्वयं काम करेगा या किसी अन्य वर्ग को कार्रवाई करने के लिए कहेगा।