代码疑问
package thirsty;
/*假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工
* 的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
* */
public class Test2 {
public static void main(String[] args) {
//Manager manager=new Manager("zhang","JL01",5000,10000);
}
//(1)定义员工类属性
abstract class Employee
{
private String name;
private String id;
private double salary;
//(2)给员工类属性初始化
Employee(String name,String id,double salary)
{
this.name = name;
this.id = id;
this.salary = salary;
}
//(5)此时思考问题:员工和经理都需要工作,但是他们做的事情是否一致呢?
//1.普通员工和经理做的事情是有区别的,经理不是普通员工中的一种,
//2.员工分为普通员工和经理,
//3.这是对事物描述不具体,即是抽象的
public abstract void work();
}
//(7)思考:如果对员工进行细分,可以分解出一个普通员工
//所以定义一个普通员工类继承员工类
class CommonPerson extends Employee
{
CommonPerson(String name,String id,double salary)
{
super(name,id,salary);
}
//(8)因为普通员工也是公司中的一员,他也要工作,所以必须覆盖掉work()方法
public void work()
{
System.out.println("commonperson work!");
}
}
//(3)定义经理类
class Manager extends Employee
{
private int bonus;
//(4)给员工类属性初始化
Manager(String name,String id,double salary,int bonus)
{
super(name,id,salary);//继承了父类Employee
this.bonus = bonus;
}
//(6)因为经理也是公司中的一员,他也要工作,所以必须覆盖掉work()方法
public void work()
{
System.out.println("manager work!");
}
}
}
这段代码中 Manager manager=new Manager("zhang","JL01",5000,10000);这句话有问题请问该怎么解?
------解决方案--------------------内部类实例化的问题:
Manager manager=new Manager("zhang","JL01",5000,10000);
改成
Test2.Manager manager=new Test2().new Manager("zhang","JL01",5000,10000);
就ok了