[Swift]Class的概念与使用

一个class就像一张蓝图,我们可以定义一类共同的对象,比如一些属性,下面我们定义一个包含name,age的名为Human的类。

            

是不是很简单~当然,类里面的变量值是可以改变的。改变之前我们需要把这个类实例化

var you = Human()

然后就可以通过这个实例修改里面的属性变量了,就像这样~

            

通过上下对比,我们发现Human里面的name确实被改变了~

我们还可以提供一些值以供实例对象初始化,首先需要在类中添加一点初始化方法:

           

哦~感觉逼格越来越高了。使用的时候就要这样写了var h = Human(name: "Joe", age: 23)

如果像这样我们使用了初始化方法,就不需要默认值了。我们可以直接写变量和它的类型:

           

我们还可以在类里面定义方法,这一步你将看到非常熟悉的东西~

           

运行结果证明,里面的方法确实生效了~

注意:除了可选类型,我们需要初始化每一个实例变量:

               运行结果是:

看看,我们貌似忘了初始化driver,然而,没关系!因为它是可选类型(就是后面加了?),默认nil。

我们还可以通过在类名后面加冒号再加父类的形式创建一个子类,尼玛好绕。。。看个例子就明白了~

                运行结果

这样是不是一目了然了~一个子类继承了父类所以的属性变量和方法,当然我们也可以添加更多特别的属性变量和方法。这使得类有很好的扩展性。

一个子类能够使用父类所有变量:

         

瞧~我们可以使用color属性,就像普通的实例变量一样~尽管这是Racecar从父类继承来的~

不止属性,方法也可以这样调用~

          

是不是很方便呢~

有时,子类对于从父类继承来的方法,需要根据需求做一些调整,需要重写方法,也很简单!用关键字override就可以!

         

从运行结果我们可以看出,通过这种方式重写方法并不会对父类的方法造成影响!!!真是超方便!!!

一但重写了方法,父类的方法就隐藏起来了,哦,别慌,我们依旧可以使用它!

         

恩~看,通过关键字super,我们还是可以使用父类中的方法的~

如果想在init( )方法中重写继承到的变量值呢?直接改变?不,我们需要先要让父类初始化值。

           

看,如果不让父类初始化值,就会发生这样的情况。。。

最后,一个捆绑了一些变量和方法的类可以实现更为复杂的功能:

          

转载于:https://www.cnblogs.com/ybw123321/p/5428501.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值