SV-虚方法-类型转换

虚方法

        虚方法

        虚方法就是多态

        virtual可以在方法上,class上添加

        为什么why要把子类句柄赋值给父类句柄。,以子类的实现优先

        虽然句柄类型不一样,但是调用的函数仍以子类的实现优先。子类若未实现,则执行父类的。——虚方法这块。

        不能给变量添加virtual,但是方法可以添加virtual虚方法。父类访问的变量范围只有父类的变量范围

(1.类的封装时,学了local,protected先不要添加。   2.类的继承时,为了让以后更简单,为了让以后能访问到更多变量,子类继承父类时,不要出现同名的变量。子类和父类出现同名的方法很常见,父类有个A和B,子类就不要出现A和B了。   3.多态,虚方法时。用不同类型句柄调用相同子类对象同一方法时,为了让其输出结果一致,应该在一开始父类(根类)的同名方法就声明virtual,后面声明否不重要。如下图。)

类型转换

        静态类型转换

         动态类型转换,用的最多的就是将父类句柄赋值给子类句柄。重点是$cast()子类句柄可直接赋值给父类句柄,访问范围:大🔺缩到小🔺。 而父类句柄赋值给子类句柄时,编译会报错。父类句柄若指向子类对象,那可通过$cast来完成转换,将右侧句柄转化成左侧的;但是若父类句柄指向父类对象,不能转化到子类句柄。

        父类句柄指向子类对象时。父类句柄若想访问子类方法,可通过虚方法,动态查找可解决。但是若想用父类句柄访问子类变量,不能直接访问,只能把父类句柄转化为子类句柄,通过子类句柄直接去访问。——动态句柄转化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值