您的位置:首页 >> APPLE >> 和屌丝一起学SWIFT-继承
和屌丝一起学SWIFT-继承
[ 孤狼 | 2016-04-26 20:53:32 | APPLE ]

声  明

       本教程仅用于初学SWIFT同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用SWIFT版本为2.0。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。PAEA.CN版权所有。



欢迎回到和屌丝一起学SWIFT系列教程,上节我们说了下标脚本,这节我们来一起学习一个重要的东西-继承.继承是面向对象开发中的一种很常见的功能,继承的存在扩展了类在使用中的功能性,使得类变的更为的好用,更加的灵活.

 

 

 

继承


继承是代码复用及管理的一大亮点,他出现在几乎所有面向对象的语言中,SWIFT,一个类可以继承另一个类的所有,被继承的类叫做超类或父类,继承的类叫做子类.另外在SWIFT,仅有类支持继承.

 

 

[基类]

基类不是搞基的类,而是基础的类.SWIFT,不继承其他类的类就叫做基类.

 

 

[子类]

继承其他类的类就是子类,可以直接理解为他是其他类的孩子,因为其他类有的东西他都有,这个过程就叫做继承.继承使用 冒号(:) 来定义.

class Ren{
    var name:String?;
    var age:Int?;
    var sex:String?;
}

这里我们先定一个基类-Ren,然后我们创建个子类,NanRen

class NanRen:Ren{}
var ren=NanRen();
ren.age=10;
print(ren.age);
//输出"10"

 

这里我们可以看出,NanRen类没有定义任何东西,就可以使用和Ren类一样的属性.但是如果仅仅是这样,继承就会失去意义.继承之后,我们还要为子类添加新的属性才能让继承发挥作用.

class HaoRen:Ren{
    var say="我是好人别杀我.";
}
class HuaiRen:Ren{
    func do1(){
        print("kill you");
    }
}
var haoren=HaoRen();
var huairen=HuaiRen();
print(haoren.say);  //输出"我是好人别杀我."
huairen.do1();      //输出"kill you"

这里我们看到,我们创建了2个子类,他们都有父类Ren的属性,同时他们还有这自己独特的属性和方法.这就是继承的精华.

 

 

[重写]

如果子类继承了父类一些东西,但是子类觉得父类的这些基因不好,他要修改为自己想要的方式,这个过程叫做重写.我们使用关键字 override 来重写父类的基因.如果你的父类的属性中有不想被他的子类重写的,需要用关键字 final 来修饰.

class Gou{
    var say="wang";
    func eat(){
        print("吃骨头");
    }
}
 
class XiaoGou:Gou{
    override var say:String{
        get{
            return "123";
        }
        set{
           
        }
    }
    override func eat(){
        print("不吃骨头");
    }
}
var x=XiaoGou();
print(x.say);   //输出"123"
x.eat();        //输出"不吃骨头"

 

本节代码下载

转载请注明出处:http://gl.paea.cn/apple/content/2016/04/26/94.html