在Swift中,子类可以对父类的函数进行重写。但是在重写的时候,要在函数名前加override。
而在oc中进行方法重写的时候不用加override。
在Swift中,初始化函数init在同一个类中可以重载且不用加override。
重载函数中可以传入参数,参数可以在类中用_声明一个实例变量,用来保存这个参数。
举个例子:
class Hello{
var _name:string = "swift”
init (name:string){
_name = name
}
init(){
}
func sayHello{
println(“Hello \(_name)")
}
}
//实例Hello
var h = Hello(name: “有参数的初始化函数")
h.sayHello()
var h1 = Hello()
h1.sayHello()
运行结果:
h输出Hello 有参数的初始化函数
h1输出 Hello Swift
swift的类方法
类方法的声明为 class fun 函数名
在类函数中我们不再使用self这样的关键字。
swift的接口使用方法也称作协议
协议的定义
protocol 协议名{
声明要实现的方法
}
类名:协议名
{
必须实现协议中声明的方法
}
枚举 enumeration
Swift枚举的成员并不会像c和o-c中那样默认生成0,1,2,3这样的索引
自定义初始化函数时用的返回值比较(面试题中看到的)
instancetype instance:情况当前类型
用它做返回值类型时,表示返回当前函数所在类的类型,通常用作自定义初始化函数。比id类型要好。
类内声的公有变量public可以在类外调用,但是不可以用点操作符,要用指向->调用。
例:
类名->公有变量名
- super表示调用父类的方法
- self表示调用当前类的方法
在多态中。可以用父类的对象来兼容子类的对象
…_仍在学习中~