خوب به راحتی میتونیم با اضافه کردن یک سری شرط، برای توابع بازگشتی حد خاصی رو تعیین کنیم 👇
من نمیدونم شما چه برنامه ریزی برای آینده ی برنامه نویسیتون دارید، ولی اگر قصد این رو دارید که به یه زبان تابعی مهاجرت کنید، بهتره که توابع بازگشتی رو تو یه زبان قابل فهم و ساده مثل پایتون تمرین کنید.
در جلسه ی بعد، بعد از چند مثال کاربردی، به سراغ تعریف کلاس ها میریم، و از اینجا به بعد دیگه قراره شئ بسازیم، و بقیه ی مباحث رو در کلاس ها تمرین میکنیم و یاد میگیریم.
در جلسه ی بعد، بعد از چند مثال کاربردی، به سراغ تعریف کلاس ها میریم، و از اینجا به بعد دیگه قراره شئ بسازیم، و بقیه ی مباحث رو در کلاس ها تمرین میکنیم و یاد میگیریم.
خوب در این جلسه قصد داریم به ادامه مباحث شی گرایی بپردازیم و به احتمال زیاد مبحث شی گرایی رو تموم کنیم
ممکن است شما بخواهید کلاسی تعریف کنید که فقط و فقط از این کلاس جهت ارث بردن استفاده کنید و هیچ منظور دیگری از تعریف این کلاس نداشته باشید در این گونه مواقع می توانید کلاس رو به صورت abstract تعریف نمایید کلاس های های abstract فقط و فقط برای ارث بردن و همچنین تقویت مبحث کپسوله سازی تعریف می شوند از کلاس های abstract نمی توان شی ای ساخت و یا ازشون اجرایی گرفت کلاس های abstract تمام ویژگی های یه کلاس عادی رو به جز ایجاد شی از کلاس رو دارند و برای کپسوله سازی که قبلا در بخش متدها این مبحث رو توضیح دادیم بهترین گزینه هستن
در مورد مبحث کپسوله سازی نیز عرض کنم که این مبحث رو در قسمت آموزش متد ها که حتما مطالعه کرده اید کامل توضیح دادم که بهترین موقعیت برای استفاده از کپسوله سازی در کلاس های abstract هست
خوب رابط ها یا interface بسیار شبیه به کلاس هایی با تعریف abstract هستن ولی این اشتباه رو نکنید رابط ها کلاس نیستند چرا که ما در کلاس ضمن اینکه اجزای کلاس مثل متدها و اجزای دیگر و تعریف می کنیم پیاده سازی اجزا رو هم انجام میدیم ولی در رابط ها فقط اجزا رو تعریف می کنیم به صورت استاتیک و فینال یا ثابت همون
رابط ها جهت ارث بردن ازشون ایجاد می شوند در حقیقت رابط ها خودشون abstract هستند به طور پیش فرض ینی فقط برای ارث بردن ازشون ایجاد می شوند هر کلاس می تواند فقط از یک کلاس ارث برید داشته باشد در صورتی که هر کلاس می تواند از چندین رابط ارث ببرد همچنین رابط ها هم می تواندد از همدیگر ارث بری داشته باشند
همانطور که قبلا گفتیم رابط ها هم می توانند از یکدیگر ارث ببرند که برای ارث بری از همدیگر مثل کلاس ها از کلمه کلیدی extends استفاده می کنند