当多个类中出现了相同功能但功能主体不同 ,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体;
抽象:看不懂。
抽象类特点:
1:抽象方法一定在抽象类中。
2:抽象方法和抽象类必须被abstract关键字修饰
3:抽象类不可以用new创建对象,因为抽象方法没意义
4:抽象类中的方法要被覆盖,必须有子类函数复写所有的抽象方法后,建立子类的对象调用;
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类;
抽象类和一般类没有什么太大不同
该怎么描述就怎么描述
假如我们在开发一个系统是需要对员工进行建模,员工包含3个属性;
姓名、工号以及工资。经理也是员工,除了含有员工的属性外,还有一个奖金属性,请使用继承的思想设计员工类和经理类。
要求类中提供必要的方法进行属性访问;
员工类:name id pay
经理类:继承了员工,并有自己特有的bonus.
[java] view plaincopy
- abstract class Employee
- {
- private String name;
- private String id;
- private 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
- {
- private int bonus;
- Manager(String name,String id,double pay,int bonus)
- {
- super(name,id,pay);
- this.bonus=bonus;
- }
- public void work()
- {
- System.out.println("manager work");
- }
- }
- class pro extends Employee//普通员工
- {
- pro(String name,String id,double pay)
- {
- super(name,id,pay);
- }
- public void work()
- {
- System.out.println("pro work");
- }
- }
- class AbstractDemo
- {
- public static void main(String[] args)
- {
- new Manager("lisi","909",923.7,234).work();
- new pro("lisi","909",923.7).work();
- }
- }