面向对象编程基础:多态与封装

需积分: 9 2 下载量 8 浏览量 更新于2024-08-23 收藏 160KB PPT 举报
"这篇资料是清华大学的Java课程中关于面向对象和多态的部分,主要讲解了面向对象的基本概念,包括类定义、抽象、封装、重载、继承和多态,并重点探讨了多态的原理和应用。" 在面向对象程序设计(OOP)中,多态(Polymorphism)是一个核心概念,它允许一个接口被多个类共享,使得一个对象能够以多种形态存在。标题中的"多态-Polymorphism"强调了这一关键特性。多态使得代码更加灵活,提高了代码的重用性和可扩展性。例如,当声明一个父类类型的引用并实例化为子类对象时,这个引用可以调用子类中重写或扩展的父类方法,这就是多态性的一个体现。 描述中的代码片段展示了多态的使用方式: ```java Employee e1 = new Manager(…) ; e1.allowance = 300.0F ; e1.setAllowance(500.0F) ; e1.upSalary(200.0F) ; e1.getInfo() ; ``` 这里`Employee`是父类,`Manager`是`Employee`的子类。`e1`被声明为`Employee`类型,但实际指向的是`Manager`对象。即使`e1`是`Employee`类型,它也可以调用`Manager`类中特有的方法,如`setAllowance()`、`upSalary()`,这体现了子类对父类方法的覆盖或扩展。同时,`getInfo()`可能是`Employee`类中定义的一个通用方法,子类可以继承并实现自己的版本,但在这里由于没有明确指出`getInfo()`是否在子类中重写,所以默认调用的是父类的实现。 标签中的"清华 java 面向对象"表明这是清华大学Java课程关于面向对象的讲解,意味着内容将深入且专业。 文件内容中还提到了抽象(Abstraction),它是OOP的另一个基石。抽象允许我们从现实世界的复杂性中抽离出来,创建与现实世界对象相似但简化了的模型。抽象类和接口都是抽象的实现方式,它们定义了共同的行为和属性,但不包含具体实现。程序员可以创建抽象类的子类,并提供具体的实现,这进一步支持了多态性。 封装(Encapsulation)是OOP的另一关键原则,它涉及到信息隐藏和软件复用。通过封装,类可以隐藏其内部细节,只暴露必要的接口供外部使用,增强了安全性并降低了组件间的耦合度。封装还促进了软件复用,因为一个封装良好的类可以作为一个独立的单元被多次使用,无需关心它的具体实现。 总结来说,这份资料涵盖了面向对象编程的关键概念,特别是多态性,这对于理解和实践Java或其他面向对象语言至关重要。通过学习这些概念,开发者可以编写出更灵活、可维护的代码,更好地模拟现实世界的问题,从而提高软件的效率和质量。