您当前的位置: 首页 >  宝哥大数据 scala

Scala基础知识之继承

宝哥大数据 发布时间:2018-05-13 11:54:21 ,浏览量:5

一、拓展 (继承)

extends是Scala中实现继承的保留字


思考:单例对象是否能被继承呢?

二、 重写(Override)

规则

例如:

三、抽象(abstract)

四 、保护 (final, protected)

五、 构造

子类构造器的运行在超类构造器运行之后

在超类的构造器中调用的成员被子类重写后,返回值可能不正确:


构造week对象前先执行month的构造器,num被初始化为31,month为初始化days 数组,调用num,但num被子类week重写了,但因为week构造器还没被调用,此时 num的值未被初始化,因而返回0,days被设置为长度为0的数组,month构造器运行 完毕,执行week构造器,num被初始化为7

解决方法:

 将超类的val声明为final
 将超类的val声明为lazy
 在子类中使用提前定义语法

提前定义

关注
打赏
查看更多评论

宝哥大数据

暂无认证

  • 5浏览

    0关注

    985博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录