আমি আমার একটি প্রকল্পেও এই বিভ্রান্তি পেয়েছি এবং এই পোস্টটি পেয়েছি, খুব সহায়ক। আমার খেলার মাঠে একই চেষ্টা করেছেন এবং এখানে সংক্ষিপ্তসার। আশা করছি এটা সঞ্চিত বৈশিষ্ট্য এবং টাইপ কার্যাবলী কেউ সাহায্য করে static
, final
, class
, ওভার-রাইড বর্গ Vars ইত্যাদি
class Simple {
init() {print("init method called in base")}
class func one() {print("class - one()")}
class func two() {print("class - two()")}
static func staticOne() {print("staticOne()")}
static func staticTwo() {print("staticTwo()")}
final func yesFinal() {print("yesFinal()")}
static var myStaticVar = "static var in base"
//Class stored properties not yet supported in classes; did you mean 'static'?
class var myClassVar1 = "class var1"
//This works fine
class var myClassVar: String {
return "class var in base"
}
}
class SubSimple: Simple {
//Successful override
override class func one() {
print("subClass - one()")
}
//Successful override
override class func two () {
print("subClass - two()")
}
//Error: Class method overrides a 'final' class method
override static func staticOne() {
}
//error: Instance method overrides a 'final' instance method
override final func yesFinal() {
}
//Works fine
override class var myClassVar: String {
return "class var in subclass"
}
}
এবং এখানে পরীক্ষার নমুনা রয়েছে:
print(Simple.one())
print(Simple.two())
print(Simple.staticOne())
print(Simple.staticTwo())
print(Simple.yesFinal(Simple()))
print(SubSimple.one())
print(Simple.myStaticVar)
print(Simple.myClassVar)
print(SubSimple.myClassVar)
//Output
class - one()
class - two()
staticOne()
staticTwo()
init method called in base
(Function)
subClass - one()
static var in base
class var in base
class var in subclass