一,class
1,class放在类前面 表示声明一个类如下图

2,class放在方法前 类似静态方法 只能用类名来调用如下图

如上图所示 class修饰的方法可以被重载(Java中方法重载的解释:在同一个类中只要方法名一样 都属于方法重构)。
class修饰方法的好处:如图所示 Person.work() 和 p1.work() 都分别调用了Person类中的work()方法 两者虽然看上去相同 没有什么太大区别 但是在内存分配上会有相当大的区别。使用Person.work() 就不用在堆区开辟一份空间来存放person对象 而 let p1 =Person() 相当于person的alloc init 方法他将在堆区开辟一块空间来存放 p1 对象 。
所以在有一定需求下 使用class 修饰方法 要比普通方法 节省内存,运行速度快。
二,static(可以自行验证)
Swift中,用static关键字声明静态变量或者函数,它保证在对应的作用域当中只有一份, 同时也不需要依赖实例化
注意:用static关键字指定的方法是类方法,他是不能被子类重写的
三,两者之间的区别(可以自行验证)
1,static修饰父类类方法 ,则这个方法能被子类继承但是子类不能重写这个方法,
class修饰父类类方法,则这个方法能被子类继承也能被子类重写。
2,如果父类的类方法是使用final class修饰的话,就相当于static, 子类不能重写这个类方法。static自带final class的性质。
网友评论