Saeid Safaei Loader Logo Saeid Safaei Loader Animated
لطفا شکیبا باشید
0

سعیدصفایی سعیدصفایی

سعید صفایی
آشنایی با مفهوم Function Overriding

Function Overriding

بازنویسی تابع به معنای تعریف مجدد تابع در یک کلاس مشتق‌شده با همان نام و امضای تابع در کلاس پایه است. این ویژگی در برنامه‌نویسی شی‌گرا برای تغییر رفتار توابع به کار می‌رود.

Saeid Safaei Function Overriding

Function Overriding یکی از ویژگی‌های مهم در برنامه‌نویسی شی‌گرا است که به شما این امکان را می‌دهد که یک متد در کلاس فرزند (Subclass) با متدی که در کلاس والد (Superclass) تعریف شده است، بازنویسی (Override) کنید. با استفاده از Function Overriding، می‌توان رفتار یک متد را در کلاس فرزند تغییر داد. این ویژگی باعث می‌شود که متدهای مشابه در کلاس‌های مختلف بتوانند رفتار خاص خود را داشته باشند، حتی اگر نام و پارامترهای مشابهی داشته باشند.

در Function Overriding، متد در کلاس فرزند باید همان امضا (Signature) را داشته باشد که در کلاس والد تعریف شده است. این بدان معناست که نام متد، پارامترهای آن و نوع داده بازگشتی باید مشابه باشند. در صورتی که این شرایط رعایت نشوند، یک خطای کامپایل رخ می‌دهد.

به‌عنوان مثال، در زبان Java، هنگامی که یک متد در کلاس فرزند بازنویسی می‌شود، می‌توانیم رفتار آن را مطابق نیازهای کلاس فرزند تغییر دهیم:

 class Animal {
public void sound() {
System.out.println("Animal makes a sound");
} } class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
} } public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();


myAnimal.sound(); // خروجی: Animal makes a sound
myDog.sound();
// خروجی: Dog barks
} }

در این مثال، کلاس Dog متد sound را از کلاس Animal بازنویسی (Override) کرده است. در نتیجه، زمانی که متد sound برای شی myDog فراخوانی می‌شود، پیامی که مربوط به سگ است چاپ می‌شود.

ویژگی Function Overriding معمولاً در زمانی که می‌خواهیم رفتار یک متد را در کلاس‌های فرزند با توجه به ویژگی‌ها یا نیازهای خاص تغییر دهیم، استفاده می‌شود. به‌عنوان مثال، اگر یک برنامه برای مدیریت حیوانات داشته باشیم، ممکن است بخواهیم که همه حیوانات صدای خاص خود را تولید کنند، ولی هر گونه خاصی از حیوانات (مانند سگ‌ها، گربه‌ها، پرندگان و ...) صدای مخصوص به خود را داشته باشند.

در زبان C++ نیز Function Overriding به‌طور مشابه پیاده‌سازی می‌شود. در C++ برای بازنویسی یک متد در کلاس فرزند، معمولاً از کلمه‌کلیدی virtual در کلاس والد و override در کلاس فرزند استفاده می‌کنیم:

 #include <iostream> using namespace std;  class Animal { public:
virtual void sound() {
cout << "Animal makes a sound" << endl;
} }; class Dog : public Animal { public:
void sound() override {
cout << "Dog barks" << endl;
} }; int main() {
Animal* myAnimal = new Animal();
Animal* myDog = new Dog();

myAnimal->sound(); // خروجی: Animal makes a sound
myDog->sound();
// خروجی: Dog barks

delete myAnimal;
delete myDog;

return 0; }

در این مثال، در C++ نیز مشابه به Java، کلمه‌کلیدی virtual برای تعیین اینکه متد در کلاس والد می‌تواند بازنویسی شود استفاده شده است. همچنین در کلاس فرزند، کلمه‌کلیدی override استفاده می‌شود تا کامپایلر بداند که این متد قرار است متد والد را بازنویسی کند.

یکی از مزایای استفاده از Function Overriding این است که به شما این امکان را می‌دهد که از ویژگی polymorphism (چندریختی) در برنامه‌نویسی شی‌گرا استفاده کنید. این ویژگی به شما این امکان را می‌دهد که از متدهای یکسان برای انواع مختلف اشیاء استفاده کنید، در حالی که هر شیء می‌تواند پیاده‌سازی خاص خود را از آن متد داشته باشد.

به‌طور کلی، Function Overriding ابزاری قدرتمند در برنامه‌نویسی شی‌گرا است که به شما این امکان را می‌دهد که رفتار متدها را در کلاس‌های فرزند تغییر دهید. این ویژگی در طراحی کد و استفاده از مفهوم چندریختی (Polymorphism) بسیار مفید است. برای یادگیری مفاهیم مشابه و مطالعه مقالات بیشتر، می‌توانید از سایت saeidsafaei.ir و مقالات محمد سعید صفایی استفاده کنید.

اسلاید آموزشی

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)
مبانی کامپیوتر و برنامه سازی

در این مبحث، به بررسی انواع توابع، شامل توابع کتابخانه‌ای و توابع ساخت کاربر پرداخته می‌شود و نحوه اعلان، تعریف و استفاده از آن‌ها مورد بحث قرار می‌گیرد. همچنین، به مفاهیم متغیرهای محلی و توابع محلی، تفاوت آرگومان و پارامتر و نحوه عملکرد تابع اصلی پرداخته خواهد شد. هدف این جلسه، آشنایی با نحوه استفاده از توابع در برنامه‌نویسی و درک دقیق ارتباطات میان متغیرها و توابع است.

مقالات آموزشی برای آشنایی با اصطلاحات دنیای کامپیوتر

حافظه دسترسی تصادفی (RAM) داده‌ها و دستورالعمل‌ها را به طور موقت ذخیره می‌کند و زمانی که پردازنده به آن‌ها نیاز دارد، می‌تواند به سرعت به آن‌ها دسترسی پیدا کند.

الگوریتم‌های یادگیری عمیق به مدل‌هایی گفته می‌شود که از شبکه‌های عصبی با لایه‌های متعدد برای یادگیری از داده‌های پیچیده استفاده می‌کنند.

اطلاعاتی است که به تشریح عملکرد سیستم‌ها، نرم‌افزارها یا سخت‌افزارها می‌پردازد.

یک زتابایت معادل 1024 اگزابایت است و برای ذخیره‌سازی داده‌های کلان در سطح جهانی استفاده می‌شود.

نویز ناشی از سیگنال‌های الکتریکی غیرقابل پیش‌بینی که معمولاً از دستگاه‌های الکترونیکی و صنعتی تولید می‌شود.

یک اگزابایت معادل 1024 پتابایت است و برای اندازه‌گیری داده‌های بسیار بزرگ در مقیاس جهانی به کار می‌رود.

تکنولوژی دفترکل توزیع‌شده (DLT) به فناوری‌های بلاکچین و سایر شبکه‌های غیرمتمرکز برای ذخیره‌سازی و مدیریت داده‌ها اشاره دارد.

یک برنتابایت معادل 1024 زتابایت است و به عنوان واحدی برای اندازه‌گیری داده‌های بسیار بزرگ در مقیاس‌های جهانی مطرح است.

روش دسترسی به رسانه که در آن منابع فرکانسی به‌طور ثابت بین دستگاه‌ها تقسیم می‌شود.

سلامت دیجیتال به استفاده از فناوری‌های نوین برای نظارت و مدیریت سلامت افراد به‌طور آنلاین اطلاق می‌شود.

مقدار عددی که به هر لینک بین روترها در پروتکل‌های Link-State مانند OSPF اختصاص داده می‌شود که نشان‌دهنده هزینه یا فاصله ارسال بسته‌ها از آن لینک است.

Base به همان معنای Radix است که به تعداد ارقام مورد نیاز برای نوشتن عدد در سیستم‌های عددی مختلف اشاره دارد.

درمان واقعیت مجازی به استفاده از تکنولوژی VR برای درمان و بهبود بیماری‌ها اشاره دارد.

دنباله فیبوناچی به سری‌ای از اعداد گفته می‌شود که در آن هر عدد جمع دو عدد قبلی خود است. این دنباله معمولاً برای بررسی الگوریتم‌های بازگشتی استفاده می‌شود.

نویز ناشی از حرکت الکترون‌ها در مواد نیمه‌هادی یا فلزات که در اثر حرارت ایجاد می‌شود.

طوفان برادکست در شبکه که به دلیل حلقه‌های شبکه‌ای، پیام‌ها به‌طور بی‌پایان در شبکه گردش می‌کنند و باعث ازدحام می‌شود.

اپلیکیشن‌های بومی ابری به برنامه‌هایی اطلاق می‌شود که به طور ویژه برای محیط‌های ابری طراحی شده‌اند.

دروازه منطقی NAND که عملیات معکوس دروازه AND را انجام می‌دهد.

کد منبع کدهایی است که به زبان برنامه‌نویسی توسط توسعه‌دهندگان نوشته می‌شود. این کدها پس از تبدیل توسط کامپایلر به کد ماشین، قابل اجرا بر روی پردازنده‌ها خواهند بود.

نوعی VLAN که به دستگاه‌ها اجازه می‌دهد در یک VLAN مشترک باشند اما نتوانند به یکدیگر دسترسی داشته باشند.

رایانه‌های کوانتومی از اصول فیزیک کوانتومی برای حل مسائل پیچیده‌ای که برای رایانه‌های سنتی غیرممکن هستند استفاده می‌کنند.

گراف یک ساختار داده‌ای است که شامل گره‌ها و یال‌ها است و می‌تواند برای مدل‌سازی شبکه‌ها، روابط و ارتباطات پیچیده استفاده شود.

رایانه‌های کوچک که می‌توانند تعداد کمی از کاربران را به صورت همزمان پشتیبانی کنند و به طور معمول در شرکت‌ها و سازمان‌های متوسط استفاده می‌شوند.

سیستم عددی ده‌دهی است که در آن از ارقام 0 تا 9 برای نمایش اعداد استفاده می‌شود.

مکانیزم‌های اجماع بلاکچین به روش‌های مختلفی اطلاق می‌شود که برای تأیید و تأمین یکپارچگی تراکنش‌ها در شبکه‌های بلاکچین استفاده می‌شود.

عملگر سه‌گانگی یک روش فشرده برای نوشتن دستورات شرطی است که معمولاً به صورت condition ? expression1 : expression2 نوشته می‌شود.

مجموعه‌ای از گره‌ها یا دستگاه‌ها که با استفاده از اتصالات مختلف (سیمی یا بی‌سیم) به یکدیگر متصل شده‌اند و به تبادل داده‌ها می‌پردازند.

پورت‌هایی که برای انتقال ترافیک مربوط به چندین VLAN بین سوئیچ‌ها استفاده می‌شوند.

سیستم‌های پرواز خودران به هواپیماها و وسایل پرنده اطلاق می‌شود که قادر به انجام عملیات پروازی به‌طور خودکار هستند.

بخش‌هایی از کد هستند که یک وظیفه خاص را انجام می‌دهند و می‌توانند در نقاط مختلف برنامه فراخوانی شوند.

دستگاه مرکزی که در شبکه‌های بی‌سیم به عنوان واسطه بین شبکه بی‌سیم و شبکه کابلی عمل می‌کند.

دریاچه‌های داده مکانی برای ذخیره‌سازی و تجزیه و تحلیل مقادیر عظیم داده‌های ساختاریافته و غیرساختاریافته ایجاد می‌کنند.

بهینه‌سازی یادگیری عمیق به تکنیک‌هایی اطلاق می‌شود که برای بهبود عملکرد مدل‌های یادگیری عمیق به کار می‌روند.

عدد به مجموعه‌ای از ارقام گفته می‌شود که با توجه به موقعیت آن‌ها در سیستم عددی، مقدار مشخصی دارند.

یک نیبل معادل 4 بیت است و معمولاً برای نمایش یک نیم‌کلمه در سیستم‌های کامپیوتری استفاده می‌شود.

بکشید مشاهده بستن پخش
Saeid Safaei Scroll Top
0%