Lab 03

Question 01

相关代码见\soultion\Question01

Question 02

  1. 不正确,删除int something保持与父类eat方法中一样无参,重写的方法必须有相同的参数列表。
  2. 不可以,重写的方法不能使用限制等级更严格的权限修饰符。
  3. 不正确,返回类型改为Worker,返回new Worker(),重写的方法要返回相同的类型。
  4. 不正确,返回类型改为int,返回(int)my_salary重写的方法要返回相同的类型。
  5. 非静态方法可以被覆盖,属性和静态方法不能被覆盖可以被隐藏。

Question 03

区别点 this super
引用(代表什么) 当前类对象 当前对象的父类对象
使用方式 直接引用,区分同名形参与成员 直接引用,区分同名子类成员变量或方法和父类成员变量或方法
调用构造方法(调用谁的构造方法,放在第几条语句) 调用本类对应形参的构造方法,放在第一条 调用父类对应形参的构造方法,放在第一条
查找范围(查找顺序) 先从本类查找,找不到则去父类 只能查找父类

Question 04

  1. 不能被继承,可以继承其他类。
  2. 不可以被重写。
  3. 常量。
  4. 不能改变其引用地址,可以改变对象的内部属性。

Question 05

  • 没有子类
  • 不可以,final类可以被实例化,而所有构造方法都是private的类无法在外部被实例化。

相关代码见\soultion\Question05

Question 06

可以通过super.get()来获取a和b的值。

相关代码见\soultion\Question06

Question 07

相关代码见\soultion\Question07