13.8 Swift构造方法的自动继承
2016-12-22 11:10
225 查看
/**
父类的构造方法默认是不会被子类自动继承的。
*/
/**
(8)13.8-构造方法的自动继承.mp4
a 如果子类中没有任何定义的构造方法,且子类中所有的存储属性都有默认缺省值,会自动继承父类中
所有的构造方法(包括便利构造方法)
b 如果子类中只是重写了父类中的某些(而不是全部)指定构造方法,不管子类中的存储属性是否
有缺省值,都不会继承父类中的其他构造方法。
c 如果子类中重写了父类中所有的指定构造方法,不管子类中的存储属性是否有缺省值,都同时
会继承父类中所有的便利构造方法。
*/
class XY {
var x:
Int
var y:
Int
init(x:
Int, y: Int) {
self.x = x
self.y = y
}
init(x:
Int) {
self.x = x
self.y =
0
}
convenience
init() {
self.init(x:
0, y: 0)
}
}
class XYZ:
XY {
var z:
Int = 0
}
var t0 =
XYZ()
var t1 =
XYZ.init(x:
0)
var t2 =
XYZ.init(x:
0, y: 0)
父类的构造方法默认是不会被子类自动继承的。
*/
/**
(8)13.8-构造方法的自动继承.mp4
a 如果子类中没有任何定义的构造方法,且子类中所有的存储属性都有默认缺省值,会自动继承父类中
所有的构造方法(包括便利构造方法)
b 如果子类中只是重写了父类中的某些(而不是全部)指定构造方法,不管子类中的存储属性是否
有缺省值,都不会继承父类中的其他构造方法。
c 如果子类中重写了父类中所有的指定构造方法,不管子类中的存储属性是否有缺省值,都同时
会继承父类中所有的便利构造方法。
*/
class XY {
var x:
Int
var y:
Int
init(x:
Int, y: Int) {
self.x = x
self.y = y
}
init(x:
Int) {
self.x = x
self.y =
0
}
convenience
init() {
self.init(x:
0, y: 0)
}
}
class XYZ:
XY {
var z:
Int = 0
}
var t0 =
XYZ()
var t1 =
XYZ.init(x:
0)
var t2 =
XYZ.init(x:
0, y: 0)
相关文章推荐
- java中子类继承父类自动调用父类无参构造方法的问题
- [swift]初始化方法自动继承
- Swift:(十)、下标、继承、重写、构造方法
- java中的继承(子类调用父类构造方法还不懂)
- java 继承类的构造方法
- java[继承][构造方法]
- J2EE中SQL语句自动构造方法
- J2EE程序中的SQL语句自动构造方法
- 继承类的构造和析构方法
- (教学思路 C#之类七)类和构造方法的继承(base关键字、Object类)
- (教学思路 C#之类七)类和构造方法的继承(base关键字、Object类)
- J2EE程序中的SQL语句自动构造方法
- J2EE中SQL语句自动构造方法
- Java语言入门教程(十三):Java语言中继承中的构造方法问题
- [图解教程]Eclipse不可不知的用法之一:自动生成Getter、Setter和构造方法
- C#高级(五)继承,派生类,派生类的构造方法
- J2EE程序中的SQL语句自动构造方法
- J2EE程序中的SQL语句自动构造方法讲解
- 继承中的构造方法调用
- 详解Java EE中SQL语句的自动构造方法