[swift学习之五]类练习
2016-05-06 14:21
513 查看
//------------------------// /*注意点: 1:静态函数不能继承 2:协议不和oc不一样了,虽然有optional和required关键字,但都不好使了~ 3:oc协议里面的静态函数(+)能够覆盖override,swift不可以,提示为最终函数。还是swift好些,比较严谨。 4:convenience构造函数中,不能用self+.的形式把init打出来,还以为不支持呢,结果直接写也没问题。但self不能省略。 5:convenience函数不能覆盖override 6:类里面改成员变量的函数,不用mutating修饰,结构和枚举需要。但编译器有提示,非常方便~。 7:如果子类也声明了和父类一样的函数,编译器非得让加override,oc不加也覆盖。这点和delphi可不一样。 @protocol ClassProtocol <NSObject> @required +(NSString*)ClassDescription; -(NSString*)Description; @end /*不用声明,直接实现都行~*/ @interface ClassTestBase : NSObject<ClassProtocol> +(NSString*)ClassDescription; @end @interface ClassTestChild : ClassTestBase @end @implementation ClassTestBase +(NSString*)ClassDescription{ return @"这是个class基类的静态函数"; } -(NSString*)Description{ return @"这是个class基类的成员函数"; } @end @implementation ClassTestChild -(NSString*)Description{ return @"这是个class子类的成员函数"; } +(NSString*)ClassDescription{ return @"这是个class子类的静态函数"; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; ClassTestBase* c = [[ClassTestChild alloc] init]; NSLog(@"%@:%@",c.Description,[ClassTestChild ClassDescription]); } */ protocol ClassProtocol { static func ClassDescription()->String func Description() -> String } class ClassTestBase:ClassProtocol{ static func ClassDescription() -> String { return "这是个class基类的静态函数" } var TrueName:String="" var ID:Int = 0; private init(ATrueName: String,AID:Int){ self.TrueName = ATrueName self.ID = AID; } convenience init(ATrueName: String){ self.init(ATrueName: ATrueName, AID: -1) } func Description() -> String { return "这是个class基类的成员函数" } func AddMyID() -> Void { ID += 1 } } class ClassTestChild: ClassTestBase { override func Description() -> String { return "这是个class子类的成员函数" } override init(ATrueName: String, AID: Int) { super.init(ATrueName: ATrueName, AID: AID) super.ID = AID + 5; } convenience init(ATrueName: String) { self.init(ATrueName: ATrueName, AID: -2) } override func AddMyID() -> Void { super.AddMyID() ID+=1 } } let obj:ClassTestBase = ClassTestChild(ATrueName:"Hello") obj.AddMyID() print(obj.ID)类的用法远不止这些,今天只是初步写了下,以后遇到什么问题再改~
相关文章推荐
- Swift 基本语法详解(2)
- Swift 基本语法详解(1)
- 【Swift学习】Swift编程之旅---构造方法(十八)
- Swift 基本语法
- [swift学习之四]结构体练习
- Swift学习 三
- Swift学习 二
- iOS App沙盒模型文件目录详解Swift版
- Swift学习 一
- swift之给拓展Category增加属性
- Swift中类的使用
- 【Swift学习】Swift编程之旅---继承(十七)
- ipad版简单美团界面功能实现(纯swift编写)
- Swift获取到AppDelegate
- Swift项目中不能定义OC类继承Swift类
- OC模型类Swift存取
- Swift-获取本地所有图片并选取(Photos、PHAsset、CollectionView)
- Swift 2.0 String 与 Int 类型的转换
- Swift入门笔记1
- 正则表达式大全(深度解析)