ارث بری (Inheritance)
ارث بری یعنی یک کلاس ویژگی ها و متدهای کلاس دیگر را بگیرد. کلاس فرزند (Subclass) از کلاس والد (Superclass) می گیرد. این کار کد را تکرار نمی کند و خواناتر می شود. مثل دفترچه قوانین مدرسه که همه کلاس ها از آن پیروی می کنند.
ارث بری در جاوا با extends
برای ارث بری از کلمه extends استفاده می کنیم. سپس کلاس فرزند می تواند متدها و ویژگی های والد را صدا بزند.
class Vehicle {
protected String brand = "Ford";
public void honk() {
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang";
public static void main(String[] args) {
Car myCar = new Car();
myCar.honk();
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
نکته: ویژگی brand در والد protected است. یعنی در همان پکیج و در زیرکلاس ها قابل دسترسی است. اگر private بود، فرزند به آن دسترسی نداشت.
جلوگیری از ارث بری با final
اگر نخواهیم کلاسی ارث بری شود، از final استفاده می کنیم. سپس هر تلاشی برای extends خطا می دهد.
final class Vehicle {
}
class Car extends Vehicle {
}
سه گام تمرین سریع
- یک کلاس والد با یک متد بساز.
- کلاس فرزند را با
extendsایجاد کن. - در
mainشیء فرزند بساز و متد والد را صدا بزن.
برای مطالعه بیشتر: صفحه پکیج ها / API را ببین. همچنین فصل بعدی چندریختی مرتبط با ارث بری است. و این صفحه ارث بری را نشانه گذاری کن.
جمع بندی سریع
- ارث بری یعنی استفاده دوباره از کد والد.
extendsارتباط فرزند و والد را می سازد.protectedدر فرزند هم قابل دسترسی است.finalجلوی ارث بری را می گیرد.- کد تمیزتر و کوتاه تر می شود.