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 و مقالات محمد سعید صفایی استفاده کنید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نوع داده‌ای است که فقط دو مقدار true یا false را می‌تواند ذخیره کند و معمولاً در شرایط منطقی به کار می‌رود.

اینترنت اشیاء (IoT) به شبکه‌ای از دستگاه‌ها و اشیاء متصل به اینترنت گفته می‌شود که می‌توانند داده‌ها را ارسال و دریافت کنند.

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

الگوریتمی که برای یافتن کوتاه‌ترین مسیر از یک گره به سایر گره‌ها در گراف‌ها استفاده می‌شود و در پروتکل‌های مسیریابی Link State کاربرد دارد.

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

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

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

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

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

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

تمام سیستم‌های عضو شبکه به صورت حلقه ای به یکدیگر متصل می‌شوند و داده‌ها در جهت عقربه‌های ساعت شروع به گردش می‌کنند تا به مقصد برسند.

تخصیص حافظه به معنای اختصاص بخش‌های مختلف حافظه به آرایه‌ها یا متغیرها است. تخصیص حافظه برای آرایه‌های داینامیک در زمان اجرا انجام می‌شود.

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

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

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

یال یک اتصال بین دو گره در گراف است که ارتباط یا وابستگی بین آن‌ها را نشان می‌دهد.

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

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

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

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

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

عبور پس از پیش به معنای بازدید از گره‌ها به ترتیب: ابتدا گره‌های زیرین، سپس گره ریشه.

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

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

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

دسترسی به عناصر آرایه به معنای استفاده از اندیس‌ها برای دستیابی به مقادیر ذخیره‌شده در خانه‌های مختلف آرایه است.

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