/*
雇员示例:
需求:公司中程序员有姓名,工号,薪水,工作内容
项目经理除了有姓名,工号,薪水,还有奖金,工作内容
对给出需求进行数据建模
*/
/*
通过名词提炼法:
程序员:
属性:姓名,工号,薪水
行为:工作
经理:
属性:姓名,工号,薪水,奖金
行为:工作
程序员和经理不存在直接继承关系
但是程序员和经理却具有共性内容
*/
public class Abstract_Test
{
public static void main(String[] args)
{
Manager m = new Manager("小张","2011",15000,8000);
m.work();
Programmers p =new Programmers("小李","2016",9000);
p.work();
}
}
abstract class Employee
{
String name;
String id;
double pay;
Employee(String name,String id,double pay)
{
this.name = name;
this.id = id;
this.pay = pay;
}
public abstract void work();
}
class Manager extends Employee
{
int bonus;
Manager(String name,String id,double pay,int bonus)
{
super(name,id,pay);
this.bonus = bonus;
}
public void work()
{
System.out.println("id:"+id+" name:"+name+" pay:"+pay+" bonus:"+bonus+" manager");
}
}
class Programmers extends Employee
{
Programmers(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("id:"+id+" name:"+name+" pay:"+pay+" code");
}
}
雇员示例:
需求:公司中程序员有姓名,工号,薪水,工作内容
项目经理除了有姓名,工号,薪水,还有奖金,工作内容
对给出需求进行数据建模
*/
/*
分析:
在这个问题领域中,先找出涉及的对象。
程序员:
属性:姓名,工号,薪水
行为:工作
经理:
属性:姓名,工号,薪水,奖金
行为:工作
程序员和经理不存在直接继承关系
但是程序员和经理却具有共性内容
*/
public class Abstract_Test
{
public static void main(String[] args)
{
Manager m = new Manager("小张","2011",15000,8000);
m.work();
Programmers p =new Programmers("小李","2016",9000);
p.work();
}
}
abstract class Employee
{
String name;
String id;
double pay;
Employee(String name,String id,double pay)
{
this.name = name;
this.id = id;
this.pay = pay;
}
public abstract void work();
}
class Manager extends Employee
{
int bonus;
Manager(String name,String id,double pay,int bonus)
{
super(name,id,pay);
this.bonus = bonus;
}
public void work()
{
System.out.println("id:"+id+" name:"+name+" pay:"+pay+" bonus:"+bonus+" manager");
}
}
class Programmers extends Employee
{
Programmers(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("id:"+id+" name:"+name+" pay:"+pay+" code");
}
}