zoukankan      html  css  js  c++  java
  • 类的继承和初始化1

     父类

    class Parent {
    var p1: String {
    get{
    return "dasf"
    }
    set {
    
    }
    }
    var p2: Int = 5
    
    func m() {
    print("parent m")
    }
    final func n(){
    
    } //不能被子类继承
    }

       子类,方法的重写

    class Child: Parent {
    //如果要重写父类的存储属性
    //1.重写后可以给它加观察者(新功能)
    //2.可以把其改为计算属性 (但是不能减少其功能)
    //3.父类的只读(只有get,或者let),子类不能添加观察者
    // override var p1: String = "afa"
    
    override var p1: String {
    willSet {
    
    }
    }
    // override var p1: String {
    // 
    // }
    
    // override var p1: String {
    // 
    // get {
    // return "dasdf"
    // }
    // set {
    // 
    // }
    // 
    // }
    override func m() {
    print("child m")
    }
    
    }

    怎么创建一个Child()类型

    let instance:Parent = Child()
    instance.m()


    //
    //这种情况只添加memberwise init

    struct Point {
    var x: Int
    var y: Int
    }
    
    let p = Point(x: 5, y: 6)

    //这种自动添加memberwise 和默认

    struct Point2 {
    var x: Int = 1
    var y: Int = 2
    }

     这种不会添加

    struct Point3 {
    var x: Int = 1
    var y: Int = 2
    
    init(xx: Int) {
    self.init(xx:xx,yy:1)
    }
    init(yy: Int) {
    // x = 1
    // y = yy
    self.init(xx:1,yy: yy) //self是不能省略的
    }
    //写一个很全的构造函数,可以初始化所有的成员
    init(xx: Int ,yy: Int){
    x = xx
    y = yy
    }
    }

     有3种调用的方法

    let p3 = Point3(xx: 1)
    let p3 = Point3(yy: 1)
    let p3 = Point3(xx: 1,yy: 2)



  • 相关阅读:
    HBase的compact分析
    HBase Rowkey的散列与预分区设计
    Zookeeper 快速理解
    oozie 入门
    Apache Storm内部原理分析
    Java ArrayList源码剖析
    Java HashSet和HashMap源码剖析
    初步掌握Yarn的架构及原理
    UML用例图总结
    UML类图几种关系的总结
  • 原文地址:https://www.cnblogs.com/kangniuniu/p/4951125.html
Copyright © 2011-2022 走看看