
وراثت یعنی یه کلاس (کلاس فرزند) بتونه ویژگیها و متدهای یه کلاس دیگه (کلاس والد) رو به ارث ببره و اگه لازم بود، تغییر بده یا گسترش بده. مثل اینه که یه نقشه کلی برای ماشین داری (کلاس والد) و بعد نقشه یه ماشین خاص (مثل سدان) ازش میسازی (کلاس فرزند).
کلمه کلیدی extends: برای ارثبری از یه کلاس استفاده میشه.
بازنویسی متدها: میتونی متدهای کلاس والد رو با @override تغییر بدی.
کاربرد تو فلاتر: ویجتهای فلاتر (مثل StatelessWidget یا StatefulWidget) از وراثت استفاده میکنن.
// کلاس والد class Person { String name; Person(this.name); void introduce() => print('$name خودش رو معرفی میکنه!'); } // کلاس فرزند class Student extends Person { Student(String name) : super(name); @override void introduce() => print('$name یه دانشجوئه!'); } void main() { var student = Student('علی'); student.introduce(); // خروجی: علی یه دانشجوئه! }
کلاس Person: والد با ویژگی name و متد introduce.
کلاس Student: از Person ارث میبره (extends) و متد introduce رو تغییر میده (@override).
super: برای پاس دادن name به سازنده والد.
وراثت تو فلاتر برای ساخت ویجتهای سفارشی (مثل StatelessWidget) و مدلهای داده (مثل کاربر) استفاده میشه. باعث میشه کدت تمیز، مرتب و قابلاستفادهمجدد باشه.
extends: برای ارثبری کلاس فرزند از والد.
override: بازنویسی متدهای والد برای تغییر رفتار.
super: دسترسی به سازنده یا متدهای والد.
کاربرد: ساخت ویجتهای سفارشی (مثل StatelessWidget) و مدلهای داده (مثل کاربر).
چرا مهمه؟: کد تمیز، قابلاستفادهمجدد و بدون تکرار.