父类扩展类中声明了属性A。子类在扩展类中声明了属性B。且A,B同名。先在子类中self.B初始化赋值。则在父类中的self.A会被替换成B。这样一定程度上破坏了子类不能声明父类同名属性的原则。
类似的,父类如果声明了属性A并且暴露了该属性,同时写了对应的lazyloading方法。子类可以重写该属性的lazyloading方法,在方法里面替换self.A属性为新值(【super set属性A:新值】)。这样,在不破坏父类结构的情况下,仍旧可以实现子类属性的替换。
父类扩展类中声明了属性A。子类在扩展类中声明了属性B。且A,B同名。先在子类中self.B初始化赋值。则在父类中的self.A会被替换成B。这样一定程度上破坏了子类不能声明父类同名属性的原则。
类似的,父类如果声明了属性A并且暴露了该属性,同时写了对应的lazyloading方法。子类可以重写该属性的lazyloading方法,在方法里面替换self.A属性为新值(【super set属性A:新值】)。这样,在不破坏父类结构的情况下,仍旧可以实现子类属性的替换。
本文标题:iOS子类属性替换父类属性
本文链接:https://www.haomeiwen.com/subject/clqtohtx.html
网友评论