练习

import UIKit

//自定义的类 不需要导入 第三方需要

class ViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

//            let person = Person()

//        print(person.name)

//        print(person.age)

let student = Student()

print(student.no)

print(student.name!)

print(student.age)

//调用的�顺序是 student -> Person -> NSObject

//重写 必须有继承关系,子类需要在父类拥有的方法的基础上进行扩展,需要添加override关键字

let student1 = Student(no: "001", name: "小红", age:  14)

//方法重载之后  对函数参数的扩展

}



import UIKit

//构造函数 可以不继承父类,但是Kvc功能无法使用

//作用:给属性分配内存空间,设置初始值,最终创建一个对象

//可选属性 必选属性

class Person: NSObject {

var name : String?

var age : Int = 13

//    var gender : Int

//可选属性:可选类型默认值为nil 不会分配内存空间,在赋值的时候

//必选属性:对象创建成功后,一定有值

//重写  父类的构造方法  构造函数都是init

override init() {

name = "张三"

//        gender = 20

//调用super.init()构造函数之前,必须对当前类的必选属性进行初始化

super.init()

}

//重载构造函数,参数名相同,参数名或者参数个数不同  也适合不同的凹函数

init(name: String,age: Int) {

self.name = name

self.age = age

super.init()

}

func show(){

}

func show(a: Int) -> Void {

}

}



import UIKit

class Student: Person {

var no : String

override init() {

no = "001"

//调用super.init()之前,必须对子类的必选属性 初始化

super.init()

}

init(no: String,name: String,age: Int) {

self.no = no

super.init(name: name, age: age)

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容