如果子类没有实现任何父类的指定构造函数,则自动继承父类所有的指定构造函数以及便利构造函数
如果子类实现了父类所有的指定构造函数,则自动继承父类的所有便利构造函数
如果子类实现了父类所有的指定构造函数,则自动继承父类的所有便利构造函数
2022-03-13
最赞回答 / finalObject
两者都能实现功能,之所以分开写,是希望把处理代码和显示代码分开,那个函数就负责,你输入一个数字,我返回给你一个状态,这个状态里包含了所有信息,后面那个switch,只不过是帮忙把这个状态信息表现了出来(通过终端打印的方式)这样做的好处是,可能在别的场景中,比如说我写了一个图形界面,这时候我要表现这个信息,可能就是更新界面了,这个时候,我原先函数是不需要变的,变得只是负责显示部分的代码。至于什么时候用枚举,我觉得不用刻意强求,知道有这么一个东西,实战中慢慢的就会知道什么时候用这个了
2019-02-01
最新回答 / 慕数据021159
在看后面的视频中我逐渐明白了如何回答自己这个问题:借用刘老师视频中的话:“方便的构造函数认为当自己在最终调用指定的构造函数时(必须的),self 才被构造出来。”那么只需要在当前的方便的构造函数中传入那个在最终调用指定的构造函数时所传入的值,就可以了。回归到本例中,就是“在当前的方便的构造函数中传入group : "" 就可以了”
2019-01-29
说错了 当你类里面的属性只是声明类型而没有初始化的时候 你需要初始化了这个值再调用super.init 如果你在声明属性的时候已经给他附上值 那就不用先子后父了
2019-01-14
现在已经不需要先子后父了 其实这样设计没啥用 。子类从写init主要是怕父亲类还没构造出来就使用父亲类函数 所以super放第一就对了
2019-01-14
计算属性的get一般用于使用自身其他属性计算得到的值 set就是用于得到的新value改变其他属性的值 显然需要受到双方制约的时候才会使用计算属性
通常只会声明get属性 这时候你就无法改变这个计算属性啦 否则你就破坏了这个计算属性的意义 显然 如果你重写其set方法的时候用self调用自身 妄想改变这个计算属性的值 系统就会爆出警告说你这样会自己调用自己 (我试过这样调用 无限循环卡死了。。。) 显然这也失去了这个计算属性设计的意义
通常只会声明get属性 这时候你就无法改变这个计算属性啦 否则你就破坏了这个计算属性的意义 显然 如果你重写其set方法的时候用self调用自身 妄想改变这个计算属性的值 系统就会爆出警告说你这样会自己调用自己 (我试过这样调用 无限循环卡死了。。。) 显然这也失去了这个计算属性设计的意义
2019-01-14
最赞回答 / 梁华建
解决了 我是把可选型的var 写成let了 既然是let 但是你又不在构造函中给他赋值 ,那么这个let在那个构造函数中就变得没有用处 当用户调用这个let的时候就会出现问题了!
2019-01-13