
WEBVTT

00:00.170 --> 00:00.860
خوش آمدید.

00:00.860 --> 00:05.630
در این ویدیو ما قصد داریم رابط را در پروژه‌مان پیاده‌سازی و استفاده کنیم.

00:05.630 --> 00:09.950
ما این حیوان هوشمند را که دفعه قبل ایجاد کردیم داریم.

00:09.950 --> 00:18.590
و حالا به جای استفاده از وراثت، همانطور که انجام دادیم، می‌خواهیم از رابط در یک کلاس جدید که

00:18.590 --> 00:19.370
ایجاد خواهیم کرد استفاده کنیم.

00:19.370 --> 00:22.670
پس بیایید آن را درست زیر اینجا ایجاد کنیم تا دیدن آن آسان‌تر باشد.

00:22.670 --> 00:30.230
پس من این کلاس عمومی به نام dog را دارم که رابط AI animal را پیاده‌سازی می‌کند.

00:30.230 --> 00:36.770
حالا می‌بینید که مستقیماً یک خطا دریافت می‌کنم که می‌گوید عضو رابط AI animal را پیاده‌سازی نمی‌کند

00:36.770 --> 00:41.420
و dog عضو رابط AI animal eat string را پیاده‌سازی نمی‌کند.

00:41.420 --> 00:50.300
پس من باید این دو متد را پیاده‌سازی کنم، بنابراین می‌توانم روی آن بایستم و فقط پیاده‌سازی رابط یا

00:50.300 --> 00:51.650
پیاده‌سازی تمام اعضا را انتخاب کنم.

00:51.650 --> 00:54.050
پس من فقط می‌گویم پیاده‌سازی رابط.

00:54.050 --> 01:01.700
پس می‌بینید که به طور خودکار کد را برای من اضافه کرد با eat که یک رشته food به من می‌دهد و

01:01.700 --> 01:04.610
با make sound که فقط یک متد void است.

01:04.610 --> 01:06.350
و هر دو را عمومی کرده است.

01:06.350 --> 01:14.870
این کدهایی را درون آن پیاده‌سازی کرده است، اما من یک خطا دریافت می‌کنم که throw new not implemented exception است، که

01:14.870 --> 01:23.180
این واقعاً جالب است زیرا این توسعه‌دهنده‌ای که از رابطی که ایجاد کردیم استفاده می‌کند را مجبور می‌کند که واقعاً

01:23.180 --> 01:23.990
آن را پیاده‌سازی کند.

01:23.990 --> 01:30.350
در غیر این صورت، ما باعث می‌شویم که این برنامه خراب شود و سپس توسعه‌دهنده متوجه می‌شود، اوه --، 

01:30.350 --> 01:37.640
من فراموش کردم این متد را پیاده‌سازی کنم، بنابراین فراموش کردم واقعاً کدی را به متد اضافه کنم.

01:37.940 --> 01:38.480
خوب.

01:38.480 --> 01:41.480
پس این نکته درباره رابط‌ها است.

01:41.480 --> 01:45.350
زمانی که از آن‌ها استفاده می‌کنید، باید متدهای آن‌ها را پیاده‌سازی کنید.

01:45.350 --> 01:49.190
پس بیایید این dog را برای خوردن استفاده کنیم.

01:49.190 --> 01:52.700
پس من فقط می‌گویم dog eat.

01:52.700 --> 01:56.120
و سپس هر چیزی که غذا باشد به علاوه food خوب.

01:56.120 --> 02:02.180
و سپس برای متد make sounds من فقط می‌گویم پارس خوب.

02:02.180 --> 02:04.040
و سگ فقط پارس می‌کند.

02:04.040 --> 02:08.270
پس حالا من رابط I animal را پیاده‌سازی کرده‌ام.

02:08.270 --> 02:12.050
پس بیایید از آن در کلاس برنامه‌مان استفاده کنیم.

02:12.050 --> 02:15.530
پس من فقط می‌گویم dog dog new dog.

02:15.530 --> 02:17.900
و من یک صدا می‌زنم.

02:17.900 --> 02:19.670
و من سگ را وادار می‌کنم که بخورد.

02:19.670 --> 02:21.830
پس dog dot eat.

02:21.830 --> 02:25.610
و سگ چه چیزی باید بخورد؟ بگذارید بگوییم یک خوراکی.

02:25.610 --> 02:32.750
پس خوراکی به این شکل حالا بیایید مطمئن شویم که می‌توانیم این کد را اجرا کنیم.

02:32.750 --> 02:36.080
و من فقط یک read key اینجا اضافه می‌کنم و آن را اجرا می‌کنم.

02:36.080 --> 02:40.940
و می‌بینیم که می‌گوید پارس و سگ خوراکی را خورد.

02:40.940 --> 02:43.250
پس واقعاً خوب است.

02:43.250 --> 02:45.920
پس می‌بینید که در اینجا اجرا واقعاً ساده است.

02:45.920 --> 02:48.590
اما زیر آن خیلی بیشتر وجود دارد.

02:48.590 --> 02:56.870
و ما به عمق بیشتری خواهیم رفت تا بفهمیم چرا، کجا و چه زمانی از سناریوهای دنیای واقعی استفاده کنیم که این

02:56.870 --> 02:57.860
بسیار بیشتر معنا پیدا کند.

02:57.860 --> 03:00.860
زیرا در این مورد ممکن است بگویید، خوب، چرا باید اهمیت بدهم؟

03:00.860 --> 03:02.270
چرا باید این کار را انجام دهم؟

03:02.270 --> 03:08.270
مسئله این است که شما باید در نظر بگیرید که این رابط‌ها، در حالی که می‌توانید رابط‌های خود را بسازید،

03:08.270 --> 03:13.790
بسیار اغلب شما فقط از یک سری رابط‌هایی استفاده خواهید کرد که توسط شخص دیگری ایجاد شده‌اند.

03:13.790 --> 03:14.240
پس شما کنترل بر این رابط‌ها ندارید.

03:14.240 --> 03:16.850
اما وقتی که شما این رابط‌ها را پیاده‌سازی می‌کنید، همچنین باید اعضای آن را پیاده‌سازی کنید و سپس

03:16.850 --> 03:24.530
باید از برخی دستورالعمل‌ها و قوانین پیروی کنید.

03:24.530 --> 03:25.040
درست است.

03:25.040 --> 03:27.860
پس اینجاست که واقعاً به کار می‌آید.

03:27.860 --> 03:32.420
این فقط درباره ساختن آن‌ها نیست، حتی اگر وقتی شما یک توسعه‌دهنده پیشرفته‌تر شوید،

03:32.420 --> 03:35.720
شما ممکن است شروع به استفاده از رابط‌ها نیز کنید.

03:35.720 --> 03:38.540
اما از یک طرف این است.

03:38.540 --> 03:44.000
اما از طرف دیگر، همچنین به ما اجازه می‌دهد که از وراثت چندگانه استفاده کنیم، که ما در ادامه

03:44.000 --> 03:44.960
این فصل انجام خواهیم داد.

03:44.960 --> 03:46.520
پس در ویدیو بعدی می‌بینیم.
