بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تفاوت کلمه کلیدی open با public
سلام میخواستم ببینم تفاوت 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 نیست .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .