-
对于希望子类实现的初始化方法,我们可以通过required限制,强制子类重写,这样写的作用保证了依赖某个Designated初始化方法的convenience一直可以使用。另外可以用required修饰convenience方法,用来保证子类不直接使用父类的convenience。查看全部
-
如果子类没有实现任何父类的指定构造函数; 则自动继承父类的所有指定构造函数查看全部
-
子类构造函数的继承原则 如果子类实现了父类所有的指定构造函数; 则自动继承父类的所有便利构造函数查看全部
-
便利构造函数(convenience):构造函数里还(只能)调用了自己的另外一个self构造函数。构造函数没有最终构造整个对象,而是由它本身的另外一个构造函数(指定构造函数)完成构造。 指定构造函数必须调用其直接父类的的指定构造函数(除非没有父类)。 便利构造函数必然会调用指定构造函数来调用父类构造函数,即convenient - init - super.init查看全部
-
构造函数可以有默认参数,可以被重载。 在self完全构造前不能有涉及到self自身的逻辑。 两段式构造的第一阶段中可以调用静态属性和方法。 init调用必须指明对象。查看全部
-
两段式构造如图: 先初始化子类的属性;然后调用父类的构造函数 super.init(); (关于父类的属性必须通过父类的构造函数super进行构造)查看全部
-
子类不能重写用final修饰的方法或属性查看全部
-
override 重写父类属性查看全部
-
多态性:在父类中定义的属性或方法被子类继承之后,可以使同一个属性或方法在父类及其各个子类中具有不同的含义。查看全部
-
子类继承父类所有属性和方法。 final 终结当前继承。查看全部
-
单例模式: static静态类型变量,可以通过GameManager类来调用类型属性defaultGameManager。 而这个let型的类型属性只能被实例化一次。查看全部
-
sources可装载其他文件,这些文件下只能定义变量或类,而不能执行。查看全部
-
private以文件为基本单位,若调用还在文件里,private无效。 类以及与类相关的定义应该放在一个文件中,相应的调用放在另一个文件中。查看全部
-
默认访问控制权限为internal查看全部
-
1.初始化一个属性,又不经常使用,浪费资源 2.计算型属性,每次调用都要重新计算,造成资源浪费 延迟属性:只在使用时调用一次,且调用后结果被保存。 lazy属性必须显示的声明返回值类型,必须声明成var类型;闭包捕获外部属性必须用self调用。查看全部
举报
0/150
提交
取消