美文网首页
Swift中的方法、继承

Swift中的方法、继承

作者: Sweet丶 | 来源:发表于2022-08-10 21:11 被阅读0次

上几篇 Swift中的属性熟练使用Swift中的区间Swift枚举

一、方法
Swift方法.png
/* 类中的方法
   1.实例方法调用:从实例前8字节找到类型信息 -》从类型信息中找到方法地址调用 -》类型信息通过汇编查看地址发现位于全局区。
   2.subscrip类似实例方法、计算属性,本质是方法.
   3.static\class修饰的方法是类型方法,使用类型调用;也能修饰subscript方法
   4.重写的方法使用override修饰
 */
class ZLFunction {
    var grade1: ScoreGrade?
    var grade2: ScoreGrade?
    // 1.实例方法,子类可以重写
    func isPass() -> Bool { return true }
    
    // static修饰的类型方法子类不能重写
    static func staticFunc() {}
    
    // class修饰的类型方法子类可以重写
    class func classFunc() {}
    
    // 下标方法:(static\class也可以用来修饰subscript方法,调用时使用类型调用)
    // 1.实例通过中括号进行赋值、取值。可以只有get方法
    subscript (index: Int) -> String {
        set {
            if index == 0 {
                grade1 = (newValue == "A") ? .A : .E
            } else {
                grade2 = (newValue == "A") ? .A : .E
            }
        }
        
        get {
            if index == 0 {
                 return (grade1 == .A) ? "A" : "E"
            } else {
                return (grade2 == .A) ? "A" : "E"
            }
        }
    }
        
    // 2.下标方法可以有多个参数,调用时如:instance[param1, param2]
    subscript (index: Int, index2: Int) -> String {
        //...
    }
    
    // 3.下标方法可以设置标签,调用时如:instance[label:param1, param2]
    subscript (label index: Int, index2: Int) -> String {
        //...
    }
}

/* 值类型中的方法(枚举、结构体)
   1.枚举、结构体中方法如果修改自身需要用`mutating`修饰
   2.值类型的类型方法用static修饰
   3.值类型的方法调用时,是直接调用方法地址
 */
enum ScoreGrade: Int {
    case A, B, C, D, E
    
    // 1.值类型中的方法如果要修改自身内存,方法需要加mutating修饰
    mutating func modifyToLevel() {
        self = ScoreGrade.A
    }
    // 2.类型方法,通过类型调用
    static func test() { }
    // 3.枚举中的类型下标方法(加了static是类型下标,用类型调用)
    /*static*/ subscript (index: Int, index2: Int) -> String {
        set {}
        get {
            return "ScoreGrade"
        }
    }
}
二、类的继承
Swift类的继承.png

相关文章

  • Swift中的方法、继承

    上几篇 Swift中的属性[https://www.jianshu.com/p/71b080f5a5e9]、熟练使...

  • Swift 5.1 (13) - 继承

    继承 继承是一种基本行为:子类继承父类方法,属性和其他特性。子类可以重写父类的方法,属性。继承将类与Swift中的...

  • Swift 5.x - 初始化(中文文档)

    引言 继续学习Swift文档,从上一章节:继承,我们学习了Swift继承相关的内容,如继承的作用、重写父类的方法和...

  • 类继承

    继承是面向对象的重要特征之一。swift中的继承只能发生在类上,结构体和枚举不能继承。在swift中,一个类继承另...

  • Swift中的方法、下标与继承

    方法 特点 枚举、结构体、类都可以定义实例方法、类型方法 实例方法:通过实例调用 类型方法:通过类型调用,用sta...

  • Swift11 - 构造过程/可选链式调用

    类 基类-不继承其他类的类Swift 中的类并不是从一个通用的基类继承而来的重写 - 子类可以为继承来的实例方法,...

  • Swift---13.继承

    继承: Swift中,一个类可以从另一个中继承它的方法以及属性.则继承了另一个类的类,被称为子类,被继承的类,称为...

  • swift方法参数遵守多继承和遵守多个协议

    参数继承协议 OC中 id Swift 3 protocol Swift 4 A & B 文档

  • swift中的继承

    一个类可以从另一个类继承方法、属性和其他的特性。当一个类从另一个类继承的时候,继承的类就是所谓的子类,而这个类继承...

  • Swift 中的继承

    继承方法、属性、其他特征(比如,下标)。还可以为继承来的属性添加属性观察器。 重写 子类可以提供自定义实现,包括,...

网友评论

      本文标题:Swift中的方法、继承

      本文链接:https://www.haomeiwen.com/subject/micvwrtx.html