ความสัมพันธ์เหล่านี้ขึ้นอยู่กับการใช้งานเป็นหลัก สิ่งนี้กำหนดว่าคลาสบางคลาสมีบางสิ่งหรือไม่ ความสัมพันธ์นี้ช่วยลดความซ้ำซ้อนของโค้ดและจุดบกพร่อง
มาดูตัวอย่างกัน −
ตัวอย่าง
public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }
นี่แสดงว่าคลาส Van HAS-A Speed การมีคลาส Speed แยกกัน เราไม่จำเป็นต้องใส่โค้ดทั้งหมดที่เป็นของ speed ไว้ในคลาส Van ซึ่งทำให้สามารถใช้คลาส Speed ซ้ำได้ในหลายแอปพลิเคชัน
ในคุณลักษณะเชิงวัตถุ ผู้ใช้ไม่จำเป็นต้องกังวลว่าวัตถุใดกำลังทำงานอยู่ เพื่อให้บรรลุสิ่งนี้ คลาส Van จะซ่อนรายละเอียดการใช้งานจากผู้ใช้คลาส Van ดังนั้น โดยพื้นฐานแล้ว สิ่งที่เกิดขึ้นคือผู้ใช้จะขอให้คลาส Van ดำเนินการบางอย่าง และคลาส Van จะทำงานด้วยตัวเองหรือขอให้ชั้นเรียนอื่นดำเนินการ