俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

类继承【俄罗斯贵宾会】

/*

 继承语法

 继承是面向对象最显著的一个特性, 继承是从已经有的类中派生出新的类

 新的类能够继承已有类的属性和方法, 并能扩展新的能力

 术语: 基类(父类, 超类), 派生类(子类, 继承类)

 语法:

 class 子类: 父类{

 }

 

 继承优点: 代码重用

 继承缺点: 增加程序耦合度, 父类改变会影响子类

 注意:Swift和OC一样没有多继承

 */

 

class Man {

    var name: String = "hjq"

    var age: Int = 23

    func sleep()

    {

        print("睡觉")

    }

}

//继承Man的子类

class SuperMan: Man {

    var power: Int = 100

    func fly() {

        //子类可以继承父类的属性

        print("飞 (name) (age)")

    }

}

var m = Man()

m.sleep()

//父类不可以使用子类的方法

//m.fly()

 

var sm = SuperMan()

//子类可以继承父类的方法

sm.sleep()

sm.fly()

 

print("==============================================")

 

/*

 super关键字:

 

 派生类(子类)中可以通过super关键字来引用父类的属性和方法

 */

 

class Man2  {

    var name: String = "HaRi"

    var age: Int = 20

    func sleep()

    {

        print("睡吧!")

    }

}

 

class SuperMan2: Man2 {

    var power: Int = 100

    func eat()

    {

        print("吃饭喽!")

    }

    func fly()

    {

        //子类可以继承父类的属性

        print("飞 (name) (age)")

    }

    func eatAndSleep()

    {

        eat()

        //1.如果没有写super, 那么会在当前类中查找, 如果找不到才会再去父类中查找;

        //2.如果写了super, 会直接去父类中查找.

        super.sleep()

    }

}

var sm2 = SuperMan2()

sm2.eatAndSleep()

 

print("==============================================")

 

/*

 方法重写: override

 重写父类方法, 必须加上 override 关键字

 */

 

class Man3 {

    var name: String = "HanJunqiang"

    var age: Int = 24

    func sleep()

    {

        print("睡觉

本文由俄罗斯贵宾会发布于编程,转载请注明出处:类继承【俄罗斯贵宾会】

您可能还会对下面的文章感兴趣: