تدعم Java الوراثة كوظيفة أساسية، وتُستخدم لتحقيق الكثير من مبادئ البرمجة الكائنية مثل التجريد.
يمكن لصنف أن يمتد من صنف آخر باستخدام الكلمة المفتاحية extends، وأن يرث من واجهة باستخدام الكلمة المفتاحية implements.
تحدد محددات الوصول قواعد لمتغيرات الأعضاء وطرق الصنف فيما يتعلق بالوصول إليها من أصناف أخرى (أو من أي مكان في الكود).
توجد أربعة محددات وصول:
privatepublicprotectedيمكنك قراءة المزيد عنها في هذا المقال
هذان المفهومان متشابهان جدًا وكثيرًا ما يُخلط بينهما.
interface Animal() {
public void bark();
}
class Dog implements Animal {
public void bark() {
System.out.println("Bark");
}
}
هنا، Dog يحقق علاقة IS-A مع Animal
interface Engine {
}
class Car {
private Engine engine;
}
هنا، Car يحقق علاقة HAS-A مع Engine