Java SE程序设计:继承与多态

版权申诉
0 下载量 114 浏览量 更新于2024-07-03 收藏 428KB PDF 举报
"本资源是JavaSE程序设计的课件,主要讲解了面向对象编程中的继承和多态性,出自Liang的《Introduction to Java Programming》第五版。课件通过具体的类(如Circle和Cylinder)展示了Java中superclass(超类)与subclass(子类)的概念,以及如何实现继承和多态。" 在Java编程中,面向对象编程是核心概念之一,它包括类、对象、继承、封装和多态等要素。本课件重点讲述了继承和多态,这是理解OOP的关键。 1. **继承(Inheritance)**: 继承是Java中实现代码复用的一种方式,一个类可以继承另一个类的属性和方法。在示例中,`Cylinder`类继承自`Circle`类,表示圆柱体类是圆形类的扩展。`Circle`是超类,具有`radius`、`getRadius`、`setRadius`和`findArea`方法,而`Cylinder`是子类,增加了`length`属性,以及`getLength`、`setLength`和`findVolume`方法。继承使`Cylinder`能直接访问`Circle`的属性和方法,无需再次定义。 2. **超类(Superclass)与子类(Subclass)**: `Circle`是超类,它定义了圆形的基本属性(如半径`radius`)和操作(如获取半径、设置半径和计算面积)。`Cylinder`是`Circle`的子类,除了继承`Circle`的所有属性和方法外,还添加了自己的属性(长度`length`)和方法(计算体积`findVolume`)。在UML图中,这种关系用箭头表示,箭头从子类指向超类。 3. **多态性(Polymorphism)**: 多态性允许一个接口有多种不同的实现,或者一个对象可以有多种行为。在Java中,多态性的实现主要是通过方法重写(Override)。例如,虽然`Cylinder`是`Circle`的子类,但可以将`Cylinder`对象当作`Circle`处理,调用`findArea`方法。同时,`Cylinder`可以提供自己的`findVolume`方法,这就是多态性的体现。 4. **代码示例**: 课件中给出了`Cylinder`类的定义,它扩展了`Circle`类,并添加了对圆柱体长度的管理。`getLength`和`setLength`方法分别用于获取和设置圆柱体的长度,而`findVolume`方法利用继承自`Circle`的`findArea`方法来计算圆柱体的体积。 5. **访问控制修饰符**: 在`Cylinder`类中,`length`属性被声明为`private`,意味着它只能在类内部访问,体现了封装的原则。`getLength`和`setLength`方法作为公共方法,允许外部访问和修改长度。 通过学习这部分内容,开发者可以更好地理解和运用Java的面向对象特性,提高代码的可重用性和可维护性,设计出更符合现实世界模型的软件系统。