第04周 预习:面向对象设计、继承与Object
- 为什么说Java中的所有类都is-a Object?
Object是超级父类,所有类都直接或间接继承自Object类。
- 在JDK文档中查找Object的toString方法。说一说,该方法有什么用?使用Eclipse查看Object的toString方法的代码,结合代码说说该代码的用途。
toString()方法在Object类中定义,其返回值是String类型,返回类名和他的引用地址在进行与其他类型数据的连接操作时,自动调用tostring()方法。作用是返回对象的字符串字符串表现形式。建议所有子类重写此方法,这样返回的字符串更利于阅读。该字符串由对象为实例的类的名称,符号字符“ @ ”以及对象的哈希码的无符号十六进制表示形式组成
- 在Eclipse中查看Object的equals方法的代码,说说equals的用途。该方法被什么修饰符修饰,意味着什么?什么时候需要覆盖equals方法?结合String类的equals方法说说覆盖如何体现子类特有的特性?
用途:指示某个其他对象是否“等于”此对象。该方法用boolean修饰;意味着它是用作判断;equals的默认实现测试变量是否引用同一对象。如果这不是你想要的,那么你需要覆盖;当对一个类进行子类的拓展时,子类需要保留父类的功能声明,但是要定义子类中该功能的特有内容时,就使用覆盖完成
- 如果在子类中想要复用父类的代码,要怎么办?
采用继承的方式
相关推荐
面向对象C++:ch04 继承与派生.ppt
面向对象C++:ch04 继承与派生.ppt
04面向对象程序设计进阶.ppt
04面向对象程序设计进阶.ppt
第05章 面向对象(下) 04 继承应用示例
第05章 面向对象(下) 04 继承应用示例
实验04 Java面向对象编程2.doc
、Person类的多态性设计。 设计一个Person类,其中包含一个方法pay(),计算工资支出。再从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(AssistantProfessor)和教授类(Professor)。其中:工资支出=基本工资+授课时数teachingHours*每课时课金。 助教基本工资为800元,每课时课金25元;讲师基本工资为1000元,每课时课金35元;副教授基本工资为1200元,每课时课金40元;教授基本工资为1400元,每课时课金50元;在主方法中显示各人员的工资支出。用以下两种方式实现: ○1将Person类设计为抽象类,pay()为抽象方法,设计程序实现多态性。 ○2将Person类设计为接口,设计程序实现多态性。 提示:设置授课时数teachingHours为成员变量,计算工资支出为成员方法,考虑是否定义构造方法。 2、编写一个Java程序,在程序中定义一个接口Achievement,其中有一个计算平均分的抽象方法avg();定义一个父类Person,其中有数据成员:姓名name和年龄age,构造方法初始化数据成员name和age,重写toString()方法显示成员信息;定义一个子类Student继承类Person并实现接口Achievement,增加数据成员:语文成绩chnScore、数学成绩mathScore和英语成绩engScore,增加设置三门课成绩的setScore()方法,并实现接口Achievement的计算平均分的抽象方法avg(),主函数中测试,部分代码如下所示: Student s=new Student(“张三”,16); //创建子类对象 System.out.println(s.toString()); //显示s的个人信息,调用继承父类的toString方法 s.setScore(80,88,95); //设置三门课的成绩 System.out.printf(“三门课的平均分:%.2f”, s.avg()); //显示对象s的三门课的平均分 输出结果如下: 姓名:张三,年龄:16 三门课的平均分:87.67 3、编写一个Java程序,在程序中定义一个School类,在School类中定义一个内部类Student,分别创建这两个类的对象,访问各个对象中的方法,其中: School类: 数据成员:学院名称schoolName; 成员方法:显示信息方法showSchoolMsg():在方法中创建内部类Student的对象,并显示该对象的信息(调用内部类Student的显示信息的成员方法)。 Student类: 数据成员:姓名sname,年龄sage; 构造方法,初始化姓名sname、年龄sage以及所属学院名(即外部类数据成员:学院名称schoolName); 成员方法:显示信息showStudentMsg(),显示的信息包括:姓名、年龄以及所属学院名。 主函数中测试,部分代码如下所示: …… // 创建外部类School的对象 …… // 通过外部类对象调用其显示信息的方法showSchoolMsg() System.out.println(“-------------我是华丽的分割线-------------”); …… // 创建内部类Student的对象 …… // 通过内部类对象调用其显示信息的方法showStudentMsg()
CPP第04单元_C++面向对象程序设计2-类的继承-作业参考答案CMtx.hpp
CPP第04单元_C++面向对象程序设计2-类的继承-作业参考答案CMtx.hpp


