抽象类知识学习-练习题

----------------------- 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学习型技术博客、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值