浙江大学计算机考研面试题集:面向对象与动态链接解析

需积分: 40 2 下载量 24 浏览量 更新于2024-09-28 收藏 402KB PDF 举报
"浙江大学计算机面试题集,包含了历年面试问题,由王道论坛整理发布,主要内容涉及面向对象程序设计的多态和动态链接的区别,以及面向对象中的动态绑定概念。" 面试题集中提及的知识点主要包括: 1. **多态与动态链接的区别**: - **多态(Polymorphism)** 是面向对象编程的一个核心概念,它允许不同类型的对象对同一消息作出响应。简单来说,多态就是通过父类类型的指针或引用操作子类的对象,使得父类接口能够调用子类的方法,实现不同的行为。 - **动态链接(Dynamic Link Library, DLL)** 是Windows操作系统中的一种共享库机制,它可以让多个应用程序共享同一份代码,节省内存资源。动态链接与静态链接相对,静态链接是在编译时就把函数或过程的代码直接嵌入到可执行文件中,而动态链接则是在程序运行时才加载所需的DLL,并建立与调用函数的关联。 2. **动态绑定(Binding)**: - 动态绑定是面向对象编程中的一个重要特征,也称为运行时绑定或后期绑定。在面向对象语言中,如果一个方法调用的真正执行体是在运行时决定的,那么就称这个方法调用是动态绑定的。例如,子类继承父类并重写了某个方法,当通过父类引用调用该方法时,实际执行的是子类的方法,这就是动态绑定。它支持多态性,使得程序更具灵活性和扩展性。 3. **面向对象的继承**: - **继承(Inheritance)** 是面向对象编程的基本机制之一,它允许创建一个新的类(派生类或子类)来继承现有类(基类或父类)的属性和方法。通过继承,子类不仅可以获得父类的所有非私有属性和方法,还能添加新的特性和功能,实现代码复用和类的层次结构。 - **单继承** 指一个子类只能从一个父类继承,而 **多继承** 则允许一个子类继承多个父类的特性,提供更灵活的设计可能性。但多继承可能导致菱形问题( Diamond Problem),需要依赖特定语言的解决方案(如C++中的虚继承)来解决。 这些知识点在计算机科学尤其是软件工程领域中非常重要,特别是在进行面向对象设计和开发时。理解和掌握这些概念对于准备计算机科学相关的面试或学习相关课程至关重要。