- 22
- 0
- 约2.57千字
- 约 4页
- 2019-09-10 发布于山西
- 举报
实验9 继承与多态
一、实验目的
(1) 理解类的继承,掌握变量隐藏、方法覆盖的概念。
(2)理解引用类型的变量的赋值转换原则。
(3)理解多态概念,掌握方法的匹配调用原则; ?
(4)理解抽象类的使用;
(5)理解this和super的含义及使用。
(6)理解访问控制符的使用
二、 知识要点
1、继承的概念
通过类的继承,祖先类的所有成员均将成为子类拥有的“财富”。但是能否通过子类对象直接访问这些成员则取决于访问权限设置。Object类是所有类的祖先。
2、构造方法与继承关系
构造方法不存在继承关系,子类中是如何给父类继承的属性赋初值呢?
子类通过调用父类的构造方法给父类的属性赋值,在子类的构造方法的第1行可以通过super去调用父类的构造方法,如果没有super调用,则默认调用父类的无参构造方法。所以,在父类中编写构造方法通常均要提供无参构造方法。
3、对象引用变量赋值原则
可以将子类的对象引用赋值给父类引用变量,由于父类能操作访问属性和方法的子类已全部继承。但将父类引用变量的值赋给子类引用变量就受到限制,必须进行强制转换,编译总是认可强制转换,但运行程序时如果不能正确转换就会报错。
4、多态的两种表现形式
(1) 同一类中的方法多态(方法重载):同一类中允许多个同名方法,通过参数的数量、类型的差异进行区分。
(2) 子类对父类方法的重新定义(方法覆盖):方法名、返回值和参数形态完全一样。
(3) 方法调用的匹配原则。
首先查找有否有参数一致的方法,也就是精确匹配;如果没有,再检查实参是否能自动转换为形参类型,能转换也可以匹配调用,这种匹配称为转换匹配。
5、继承关系中对成员的访问(最近匹配原则)
??? 由于继承关系的存在,一个对象的属性和方法中有自己新定义的,也有从祖先类继承的。允许子类对父类定义的属性和方法重新定义,一个对象查找其属性和方法时按什么原则查找呢,实际也是“最近匹配原则”。
(1)在子类中访问属性和方法时将优先查找自己定义的属性和方法。如果该成员在本类存在,则使用本类的,否则,按照继承层次的顺序到其祖先类查找,如图8-1所示。
(2)this关键字特指本类的对象引用,使用this访问成员则首先在本类中查找,如果没有,则到父类逐层向上找。
(3)super特指访问父类的成员,使用super首先到直接父类查找匹配成员,如果未找到,再逐层向上到祖先类查找。
6、抽象类
定义形式:
abstract class 类名称 {
??? 成员变量;
??? 方法(){……}???? //定义一般方法
??? abstract 方法();//定义抽象方法
}??
?? 在抽象类中可以包含一般方法和抽象方法。
?? 抽象类表示的是一个抽象概念,不能被实例化为对象。
?? 继承抽象类的具体类必须将抽象类中抽象方法覆盖实现。
7、接口
定义形式:
interface 名称 {
??? 静态常量;
??? 抽象方法();
??? }??
?? 接口中包含静态常量和抽象方法.
?? 类继承接口,实现接口中的所有方法.
三、上机练习
编写程序,在程序中定义一个抽象类Area、两个Area类的派生子类RectArea和RoundArea类,以及一个实现类ImpleArea类(main方法所在的类).程序的实现如下:
抽象类Area类中只包含一个抽象方法:double area()。
子类RoundArea类通过覆盖父类中的抽象方法area来求圆的面积,另一个类RectArea类通过覆盖父类中的抽象方法area求长方形的面积
圆的半径和长方形的边分别定义为子类RoundArea类和RectArea类的域,都为double类型。
ImpleArea类中接收键盘输入(Scanner),输入内容分别为长方形的边和圆的半径,求出长方形和圆的面积,并在屏幕上显示。
某公司有 3种不同的雇员,分为A,B,C3个级别。公司的总雇员数目因月份的不同可能发生变化。每个级别的月薪是不同的。编写一个程序计算公司一个月需要支付的全部薪水。
要求有一个abstract类,类名为Employee。Employee的子类有Aemployee, Bemployee, Cemployee. Employee类必须有一个abstract方法
注意:Aemployee, Bemployee, Cemployee声明的对象表示的是一个员工,而不是一类员工。成员变量没有要求的,不能乱加。
public abstract double earnings();//返回级别工资
子类必须重写父类的earnings方法(必须的,继承抽象类必须实现抽象方法),给出各自的月薪水的具体数额。 (数据随便,自己编好了)
编写一个Company类,该类用Employ
您可能关注的文档
最近下载
- 2024年山西国际商务职业学院单招职业适应性测试题库含答案(典型题).docx VIP
- 2024年新高考二卷 .pdf VIP
- 电气安全知识培训(通用)课件.pptx VIP
- BIM建模基础Revit应用整体教学设计.docx VIP
- 2024年山西国际商务职业学院单招职业适应性测试题库含答案(巩固).docx VIP
- tiktok店铺运营协议合同.docx VIP
- 第三周:音乐《我为老师唱首歌》.ppt VIP
- 《高等教育学》课后习题答案.pdf VIP
- 智能机器人系统:智能机器人SLAMPPT教学课件.pptx VIP
- 深度解析(2026)GBT 13177-2008 《核电厂优先电源》.pptx VIP
原创力文档

文档评论(0)