آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تفاوت کلمه کلیدی open با public

ImanX  9 سال پیش  9 سال پیش
0 0

سلام میخواستم ببینم تفاوت open با public در چیه ؟
دربارش مطالعه کردم ولی انچانان تفاوتی نداره و اینکه open در سوییفت ۳ اضافه شده جای public 
اگه کسی دربارش بیشتر میدونه ممنون میشم بیشتر توضیح بده.
با تشکر.

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  9 سال پیش
+1 0

سلام ،
خلاصه این هست که Open در دسترس تر از Public هست .
در زیر یک مثال کامل تر میزنم .
فرض کنید که ما یک فایل داریم و کلاس زیر رو توش تعریف میکنیم  اسم این فایل رو میذاریم ModuleA.

open class Test{

public func foo() {}

open func bar() {}

public final func baz() {}
}

اگر ما یک فایل دیگه به نام ModuleB داشته باشیم و ModuleA رو درون این فایل Import کنیم .

import ModuleA

class SubclassB : Test{

//#1
override func foo() { }

//#2
override func bar() { }

//#3
override func baz() {}
}

#1 - امکان تغییر این متد تنها در داخل ModuleA مقدور است و خارج از آن نمی توانید Override انجام دهید .
#2 - این متد را میتوانید درون و بیرون ModuleA ویرایش کنید . دسترسی آن Open است .
#3 - این متد به هیچ عنوان در هیچ جا قابل Override نیست .

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .