Swift的继承和结构体的初始化

/*

Swift的继承

如果要重写父类的存储属性

1.重写后可以给它加属性观察器。列一:

2.可以把其改为计算属性(但不可减少父类属性原本的功能)。列二:

3.父类的只读(只有get,或者let),子类不能添加属性观察器。列三:

如果重写父类的计算属性

1.父类计算属性只有只读,子类重写后可以给其加上seter方法。列四:

方法继承。列五:

*/

//列一:

class Person {

    var name: String = "cj"

}

class Child:Person {

    override var name: String {

        willSet {

        

        }

        didSet {

        

        }

    }

//    override var name:string = "cj"  错误

}

//列二:

class Person2 {

    var name: String = "cj"

}

class Child2:Person2 {

    override var name: String {

        get {

            return "chenhe"

        

        }

        set {

        

        }

    }

}

//列三:

class Person3 {

    var name: String {

        return "chenhe"

    }

    let height: Int = 12

}

class Child3:Person3 {

//    override var name: String {

//        willSet {

//        

//        }

//        didSet {

//        

//        }

//    }

//    override let height: Int {

//        willSet {

//        

//        }

//        didSet {

//        

//        }

//    }

}

//列四:

class Person4 {

    var name: String {

        return "chenhe"

    }

}

class Child4:Person4 {

    override var name: String {

        get {

            return "chenhe"

            

        }

        set {

            

        }

    }

}

//列五:

class Person5 {

    var name: String {

        return "chenhe"

    }

    func x() {

        print("你好")

    }

}

class Child5:Person5 {

    override func x() {

        print("你们好")

    }

}

//运行时多态

let a: Person5 = Child5()

a.x()

 

//初始化干两件事,分配空间,成员赋值

//结构体的初始化方法

struct Point {

    var x: Int

    var y: Int

}

//let p = Point 违背了初始化话原则,没有给成员赋值。下面这个就可以了列一:

let p = Point(x: 1, y: 2)

struct Point2 {

    var x: Int = 4

    var y: Int = 3

}

let p2 = Point2()//这样不会报错,分配了空间又给成员赋值了

 

struct Point3 {

    var x: Int

    var y: Int

    //写一个很全的构造函数,可以初始化所有的成员

    init(xx: Int,yy: Int) {

        x = xx

        y = yy

    }

}

转载于:https://www.cnblogs.com/osxchen/p/4943420.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值