Swift-基础-6

import Foundation

print("Hello, World!")

/*****************36、类继承*************/
//子类可以访问父类的所有属性及方法
//1.定义一个基类
class Person {
    var name : String = ""

    //父类的方法
    func eat() -> Void {
        print("父亲")
    }

    //6.防止重写  final
    final func run() -> Void {
        print("run")
    }

}
//OC,swift是不存在多继承的

//2.子类生成
class Son : Person {
    var age : Int = 0

    //5.重写父类方法  override
    override func eat() {
        print("Son")
    }
}

//3.子类可以继续继承子类
class Soon : Son {
    var sex : Int = 0
}

//4.访问超类的方法、属性
//实例化Person对象
var person = Person.init()
person.name = "123"
person.eat()

//实例化Son对象
var son1 = Son.init()
son1.age = 34
son1.name = "rrr"
son1.eat()

//实例化Soon对象
var soon1 = Soon.init()
soon1.sex = 1
soon1.age = 56
soon1.name = "uuu"

//5.重写父类方法  override

//6.防止重写  final

/***************37、构造器**********/
//1.构造函数  init()   当一个类实例化某个对象时,第一个被调用的方法

class Student {

    var name = "ser"

    let age : Int

    //构造函数
    //2.不带外部名的构造器参数
    init(){
        print("init")
        //4.构造过程中常量属性的修改
        self.age = 12
    }

    //3.构造函数参数的内部名称和外部名称
    init(name : String){
        print(name)
        self.age = 13
    }
    //默认的外部参数
    init(name : String, age: Int){
        print(name,age)
        self.age = 14
    }

    //指定外部参数名及内部参数名
    init(name1 a : String, age1 b : Int){
        print(a,b)
        self.age = 15
    }

    //忽略外部参数名
    init(_ a : String ,_ b : Int){
        print(a,b)
        self.age = 16
    }
}

//5.默认构造器
var student1 = Student.init()
var student2 = Student.init(name: "qwe")
var student3 = Student.init(name: "677", age: 90)
var student4 = Student.init(name1: "90", age1: 555)
var student5 = Student.init("kk", 89)

student1.name = "hfhg"
print(student1.age)

//6.结构体的成员逐一构造器
struct Point {
    var width : Int = 0
}
var point1 = Point.init()
var point2 = Point.init(width: 90)

//7.构造器的继承和重写  override
class XiaoHong : Student {

    override init() {
        //8.构造器的自动继承
        super.init()
    }

    override init(name: String) {
        super.init(name: name)
        print("vnvbn")
    }

    //析构函数
    deinit {
        print("deinit")
    }
}

var xiao = XiaoHong.init()
var xiao1 = XiaoHong.init(name: "ghjnfnfgd")

//38、析构过程
//析构函数:当对象为nil时会调用析构函数

var xiao2 : XiaoHong? = XiaoHong.init()
xiao2 = nil


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值