我想你的代码中Employee应该是抽取出来的最终类吧。所以在代码中只有它使用abstract修饰成抽象类。所以该类是不能创建对象的。
而Manager、Employee是它的子类,继承了Employee,所以它们都得实现抽象类Employee中的抽象方法work。它们就可以成为普通类,所以是不需要用abstract修饰(你用abstract修饰了的话,它们就还是抽象类,所以是不能够创建对象的),可以直接创建对象并调用其方法。
- 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{ //Manager不需要用abstract修饰,它的内部已经没有抽象方法了。
- 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("manger work");
- }
- }
- class Pro extends Employee { //Pro也不需要用abstract修饰了;
- public Pro(String name,String id, double pay){
- super(name, id , pay);
- }
- public void work(){
- System.out.println("pro work");
- }
- }
- public class Test14{
- public static void main(String[] args){
- Pro p = new Pro("zhangsan","008",8000.00); //创建对象;
- p.work(); //调用其方法。
- Manager man = new Manager("li", "007", 5000, 1000);
- man.work();
-
- }
- }
复制代码
|