IC验证面试中常问知识点总结(四)附带详细回答!!!
12、OOP是什么?OPP的特性?多态看的是基类句柄还是对象?
OOP是指面向对象编程,全称Object Oriented Programming,特性就是:封装,继承,多态。OOP的本质或者说核心并非“继承”,而是“多态”。多态看的是基类句柄
12.4. 1 多态
多态指调用相同的名字和方法,得到的结果是不同的。比如多个子类中虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果,多态性增强了软件的灵活性。
a. 虚方法
虚方法是多态的主要特征。关于虚方法,简而言之就是用父类句柄指向子类对象,然后通过父类的句柄调用实际子类的成员方法。不加virtual看类,加了virtual看句柄,也就是,没加virtual时,如果子类就会调用父类的方法,加了后,子类就会调用子类的方法。
虚方法使用的前提是父类和子类中有同名的method;"父类句柄指向子类对象"的常见场景如下:
(a): 在子类中调用一些上层的方法时,往往会有参数传递,参数传递时容易发生隐式转换,即将子类对象的句柄赋给父类句柄,从而使得父类句柄指向了子类对象;
(b): 在构建上层框架(比如方法学)时,为了通用性,很多句柄都是用父类对象声明;当用户使用上层框架中的方法时,很容易将自己创建的子类对象的句柄赋给上层框架中的父类句柄,从而使得父类句柄指向了子类对象;
如果父类和子类中有同名的