《Java基础学习笔记》JAVA之抽象(Abstract)
(abstract)抽象:
当多个类中出现相同功能,但是功能主体不同。 这时也可以进行向上抽取,这时,抽取功能定义,而不抽取功能主体。
抽象方法必须定义在抽象类中。
特点:
1,抽象方法一定定义在抽象类中。
2,抽象方法和抽象类都被必须被 abstract关键字修饰。
3,抽象类不可以被实例化(被 new 创建对象),因为调用抽象方法没有意义。
4,抽象类中的方法要被使用,必须由子类复写其拟有的抽象方法后,建立子类调用。
如果子类只重写了部分抽象方法,那么该子类还是一个抽象类。
/********************华丽的分隔线***************************/
假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性: 姓名、工号、工资。
经理也是员工,除了含有员工的属性外,另为还有一个奖金属性,请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
abstract class Employee { private String id,name; private double pay; Employee(String id,String name,double pay) { this.id = id; this.name=name; this.pay = pay; } public abstract void Work(); } class Pro extends Employee { Pro(String id,String name,double pay) { super(id,name,pay); } public void Work() { System.out.println("员工在做事!"); } } class Manager extends Employee { private double bonus; Manager(String id,String name,double pay,double donus) { super(id,name,pay); this.bonus = bonus; } public void Work() { System.out.println("经理在做事!"); } }