super
می خوایم «کلیدواژه super در جاوا» را ساده ببینیم. «کلیدواژه (Keyword)» یعنی واژه ای که به کامپایلر فرمان می دهد. با super به «ابرکلاس (Superclass)» اشاره می کنی. مثل وقتی از معاون مدرسه کمک می گیری.
معرفی کلیدواژه super
طبق منبع، super به شیء ابرکلاس اشاره می کند. با آن می توان «متد والد» را صدا زد. همچنین می توان «سازنده والد (Constructor)» را فراخوانی کرد. این کار، گیجی بین متدهای همنام در والد و فرزند را کم می کند.
نمونه کد: صدا زدن متد والد با super
در این مثال، کلاس Dog از Animal ارث می برد. سپس با super متد والد را پیش از پیام خودش اجرا می کند.
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
public void animalSound() {
super.animalSound();
System.out.println("The dog says: bow wow");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.animalSound();
}
}
کی از super استفاده کنیم؟
وقتی متدهای همنام در والد و فرزند داری، super کمک می کند. بنابراین ترتیب اجرا را روشن می کنی و خروجی قابل پیش بینی می شود.
تمرین سریع مرحله ای
- یک کلاس والد بساز و یک متد ساده بگذار.
- کلاس فرزند را با extends ایجاد کن.
- متد را در فرزند override کن.
- در ابتدای متد فرزند، super.methodName(); را صدا بزن.
- کلاس اصلی را اجرا کن و تفاوت خروجی را ببین.
نکته: برای درک بهتر super باید وراثت و چندریختی را بلد باشی.
وراثت (Inheritance) را مرور کن تا نقش والد و فرزند روشن شود.
چندریختی (Polymorphism) را هم ببین تا اجرای متدها را بهتر بفهمی.
کلیدواژه super اینجاست تا مرجع سریع تو باشد.
جمع بندی سریع
- super به ابرکلاس اشاره می کند.
- متد والد را صدا می زند.
- سازنده والد را فراخوانی می کند.
- گیجیِ متدهای همنام را کم می کند.