package package1; public class Demo12 { public static void main(String[] args) { javaTeacher javaTeacher=new javaTeacher(20, "張三", 5000); javaTeacher.work(); /* *抽象類不能被實例化 * Employee employee=new Employee(20, "張三", 5000); * */ Leader leader=new Leader(20, "王五", 5000,1000); //向下轉型 leader.work(); Employee emp=new Leader(20, "王五", 5000,1000); emp.work(); } } //抽象類 abstract class Employee{ private int number; private String name; private double salary; public Employee(int number,String name,double salary) { this.name=name; this.number=number; this.salary=salary; } //抽象方法 public abstract void work(); //可實現的方法 public void aa() {} //抽象類中能夠有抽象方法也能夠有可實現的方法 } //一個類繼承了抽象類,那麼這個類要麼實現抽象類中的方法,要麼繼續抽象下去 class Leader extends Employee{ //私有屬性 private double allowance;//津貼 public Leader (int number,String name,double salary,double allowance) { super(number, name, salary); this.allowance=allowance; } @Override public void work() { // TODO Auto-generated method stub System.out.println("培訓新員工"); System.out.println("設計課程"); } /* *繼續抽象下去的表現 * public abstract void work() {} * */ } class javaTeacher extends Employee{ public javaTeacher (int number,String name,double salary) { super(number, name, salary); } @Override public void work() { // TODO Auto-generated method stub System.out.println("上java課程"); } }