SV 面向对象

面向对象编程主要包含三个特性:封装、继承、多态。

1.封装

可以将不同的属性和方法封装为不同的类,来实现对不同对象的描述。

2.继承

基类可以派生出派生类,对于派生类来说,继承于基类,拥有基类的变量和方法,还可以扩展自己独有的变量和方法以及对其进行覆盖。(子类使用父类的方法)

3.多态

基类的方法可以根据继承的类不同呈现出不同的状态。(父类使用子类的方法)

多态涉及句柄赋值,当讲子类的句柄赋值给父类句柄,父类对象的内存空间就会被释放,指向子类对象的内存空间;此时,子类对象转换为父类对象,称为向上转换。如果一个function或task被virtual修饰,这个function可以根据句柄指向对象类型,转变为不同的状态。

子类在创建时,子类空间会同时生成父类的内存空间和子类新增或覆盖变量的内存空间。在进行向上转化时,父类句柄指向子类空间的父类空间部分,句柄调用的变量仍是父类的变量。父类句柄调用的方法,如果被virtual修饰,则指向子类空间的方法以及变量(指向子类覆盖的变量是因为,新定义的方法可能用到新的变量,需要使用子类的变量)。否则,如果没有被virtual修饰,则父类句柄调用的方法使用的是父类的方法和涉及的变量。

向下转换指的是,父类句柄赋值给子类句柄,父类对象会转换为子类对象,由于父类对象内部空间小于子类对象,需要使用cast来进行转换,否则会出现编译错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值