11.4 Swift重写属性

        /**

         上一节课研究了如何重写方法,

         这节课研究如何重写属性。

         4)重写属性

         */

        

        class Father {

            var storeProperty: Int = 0 // 存储属性

            var computeProperty: Int { // 计算属性

                get {

                    return 0

                }

                

                set {

                    print("In FatherClass: set\(newValue)")

                }

            }

        }

        

        

        class Child: Father {

            

            /**

             可以将一个父类的存储属性重写成计算属性,

             不可以将一个父类的存储属性再重写成存储属性。

             */

            override var storeProperty: Int {

                get {

                    return 0

                }

                

                set {

                    print("In ChildClass set: storeProperty with value \(newValue)")

                }

            }

            /**

             可以将父类中的技术属性重写,重写的样式也是计算属性

             */

            override var computeProperty: Int {

                get {

                    return 10

                }

                

                set {

                    print("In ChildClass set: coputeProperty with value \(newValue)")

                }

            }

            

        }

        

        

        let ch = Child.init()

        

        // 通过子类的对象来调用重写后的属性或者方法,肯定会调用子类中的重写版本

        

        ch.storeProperty = 100

        ch.computeProperty = 200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值