خب در پست قبل در مورد کلاسها صحبت کردیم. در این پست میخوام در مورد یکی از قابلیتهای کلیدی برنامهنویسی شی گرا، یعنی وراثت صحبت کنم. در وراثت حداقل ۲ کلاس وجود دارد. یکی کلاس پدر و دیگری کلاس فرزند. کلاس فرزند تمامی خواص، متغیرها و توابع کلاس پدر مگر آنهایی که private هستند رو ارث بری میکند. یعنی ما بدون ساختن شی از کلاس پدر میتوانیم از توابع و متغیرهای کلاس پدر استفاده کنیم.
خب به چه صورت؟ مثال زیر رو ببینید:
public class Classname extends FatherClass { protected int id; public String text; private double spt; public Classname(int id) { this.id = id; } public String functionName(){ FatherFunction(); String data = "Class Function"; return data; } } class FatherClass{ public int a = 2; protected void FatherFunction(){ System.out.println("Salam :)"); } }
در اینجا در هرجا تابع functionName صدا زده بشه، مقدار Salam 🙂 هم چاپ میشه.
یک دستوری داریم به اسم super که مانند this هستش با این تفاوت که به موارد کلاس پدر اشاره میکنه.
قابلیت Override
خب این یکی از قابلیتهای مهم وراثت هستش. به این معنی هستش که شما میتونید توابع کلاس پدر رو بازنویسی کنید در فرزند با پیاده سازی جدید. مثال زیر رو ببینید:
public class Classname extends FatherClass { protected int id; public String text; private double spt; public Classname(int id) { this.id = id; } public String functionName(){ FatherFunction(); String data = "Class Function"; return data; } @Override protected void FatherFunction() { System.out.println("Salam From Child"); } } class FatherClass{ public int a = 2; protected void FatherFunction(){ System.out.println("Salam :)"); } }
دیدگاهتان را بنویسید