在HourlyEmployee和SalariedEmployee子类中,我们调用super()
将“name”传递给基类构造函数。我有两个问题:
变量名称来自哪里,这是aName变量的拼写错误?
如何调用setSalary()
在这些子类中工作?
扩展Employee类是否为我们提供了setSalary()
方法的副本,但是在方法内部有aSalary=salary;
,其中不继承工资,因为它是私有的或继承只是让我们使用{来自基类的{1}}方法,这就是使用setSalary()
传递名称的原因。
super()
答案 0 :(得分:6)
变量名称来自何处,这是aName
变量的拼写错误?
是的,这是一个错字。应为aName
,否则无法编译。
如何调用setSalary()
在这些子类中工作?
扩展类时,子类继承了超类中的所有功能。这就是SalariedEmployee
和HourlyEmployee
类对setSalary()
方法访问的原因:它们都继承了Employee
类的功能。
您应该注意,子类不会直接访问salary
字段,而是通过setSalary()
和getSalary()
方法访问{{1}}字段。这称为封装,用于限制对类成员的直接访问。
答案 1 :(得分:1)