----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
假如我们在开发系统时需要对员工进行建模,员工包含3个属性:姓名,工号,工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性,请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性访问。
思路:
员工类:name id salary
经理类:继承了员工,并有自己特有的奖金(bonus)属性
员工分为普通员工和经理,那么员工和经理做从事的工作即做的工作不一样,但是他们都得为公司工作。所以产生了一个工作方法,那么普通员工和经理都需要有工作这个方法。
下面实现代码中分别给出了步骤,即每一步该做什么,一共是8个步骤加上注释中的思考。
//(1)定义员工类属性
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!");
}
}
class
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------