ارث بری (Swift Inheritance)
«ارث بری (Inheritance)» یعنی کلاس فرزند ویژگی ها و متدهای والد را بگیرد. سپس، با «بازنویسی (Override)» رفتار را تغییر دهد. مثل اینکه شاگرد از معلم روش ها را یاد می گیرد، اما سبک خودش را می سازد.
کلاس فرزند و بازنویسی با override
کلاس فرزند با «:» از والد ارث می برد. سپس با «override» همان متد را دوباره تعریف می کند. بنابراین، رفتار جدید اجرا می شود.
class Animal {
func speak() {
print("...");
}
}
class Dog: Animal {
override func speak() {
print("Woof");
}
}
let a: Animal = Animal();
a.speak();
let d: Dog = Dog();
d.speak();
نکته: اگر متدی را بازنویسی نکنی، همان رفتار والد اجرا می شود. پس، فقط وقتی تغییر می خواهی «override» بزن.
گسترش رفتار والد با super
گاهی می خواهی هم کارِ والد اجرا شود، هم کارِ جدید. با «super» متد والد را صدا بزن، سپس کد خودت را اضافه کن.
class Animal {
func speak() {
print("...");
}
}
class Dog: Animal {
override func speak() {
super.speak();
print("Woof");
}
}
let d: Dog = Dog();
d.speak();
تمرین سه مرحله ای سریع
- یک کلاس «Vehicle» با متد
move()بساز. - کلاس «Car» را از Vehicle ارث بده و
move()را بازنویسی کن. - با
super.move()اول حرکت پایه را صدا بزن، سپس متنِ جدید چاپ کن.
لینک های داخلی مرتبط
برای مقایسه ارث بری و نوع ها، صفحه کلاس vs ساختار را ببین. همچنین، در کلیدواژه self روش اشاره به شیء و نوع را مرور کن. برای ادامه مسیر، به ارث بری سوئیفت برگرد.
جمع بندی سریع
- ارث بری یعنی گرفتن رفتارِ والد.
- با override رفتار را تغییر بده.
- با super رفتار والد را نگه دار.
- ساختار سلسله مراتب کد را مرتب می کند.