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

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

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

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

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

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

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

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

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

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

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

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

روش‌های انتقال داده از یک دستگاه به دستگاه دیگر شامل Simplex، Half-Duplex و Full-Duplex.

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

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

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

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

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

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

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

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

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

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

واقعیت مجازی (VR) تجربه‌ای است که در آن کاربر به طور کامل در یک محیط دیجیتال غوطه‌ور می‌شود.

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

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

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

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

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

شبکه‌های مولد رقابتی (GANs) دو شبکه عصبی را برای تولید داده‌های جدید از داده‌های واقعی به کار می‌گیرد.

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

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

حافظه اولیه، که معمولاً شامل RAM و حافظه کش است، برای ذخیره‌سازی داده‌های در حال پردازش استفاده می‌شود.

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

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

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

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

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

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

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

اینترنت اشیاء پزشکی (IoMT) به شبکه‌ای از دستگاه‌ها و حسگرهای پزشکی متصل به اینترنت اطلاق می‌شود که داده‌ها را برای نظارت بر بیماران ارسال می‌کنند.

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