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
Swift-基础-6
最新推荐文章于 2024-04-19 09:56:45 发布