swift继承

  /**

    重写属性。同时又会有一些限制:

    1】属性中如果有setter方法,则必须同时提供getter方法

    2】不可以将父类中的读写属性重写成只读属性,但是可以讲父类的只读属性重写成读写属性。

    */

    

    

    class BankAccount {

        //余额

        var accountBalance:UInt64 = 0;

    }

    

    class SmallBank: BankAccount {

    

    override var accountBalance:UInt64{

        

        get{

            let sum:UInt64 = 0;

            return sum;

        }

        

        set{

            print("do nothing");

        }

    }

    


    

    

    /**

    重写属性观察器。在子类中为父类的某个属性设置属性观察器,由于是在子类中定义,因此严格上说这属于继承之后对属性的重写。必然的,只读属性是不能重写属性观察器的。

    */

    

    class bigBank: BankAccount {

        

        override var accountBalance:UInt64{

            

            willSet{

                print("余额要变");

            }

            

            didSet{

                if accountBalance >= 500000{

                    print("成为银行VIP");

                }else{

                    print("不是银行VIP");

                }

            }

        }

        

    }

    

    

        /**

        super关键字

        如何在子类重写的方法中或者属性中调用父类相同的方法或者属性呢?只需要在方法或者属性前加上super. 就可以调用父类的方法或者属性了。

        */

        

        

        /**

        final关键字

        作用是阻止父类中的某个属性或者方法被子类重写。只要在属性或者方法前面加上final关键字就可以了。

        

        如果说这个类的所有属性和方法都不想被重写,那么意思就是不想让这个类具有子类,只需要在类声明的时候前面加final就可以了。

        */

        

        

        class test {

            

            final var testName = "测试1";

        }

        

        

        final class notWrite{

            

            var name = "不允许有子类";

        }

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值