抽象的定義:抽象是把多個事物的共性的內容抽取出來,本質就是把我們關註的內容抽取出來。(比如:寶馬,賓士都屬於汽車,汽車是抽象出來的概念); 抽象類:Java中可以定義沒有方法體的方法,該方法由其子類來具體的實現。該沒有方法體的方法我們稱之為抽象方法,含有抽象方法的類我們稱之為抽象類; 抽象方法特點:
抽象的定義:抽象是把多個事物的共性的內容抽取出來,本質就是把我們關註的內容抽取出來。(比如:寶馬,賓士都屬於汽車,汽車是抽象出來的概念);
抽象類:Java中可以定義沒有方法體的方法,該方法由其子類來具體的實現。該沒有方法體的方法我們稱之為抽象方法,含有抽象方法的類我們稱之為抽象類;
抽象方法特點:
① 只有方法頭沒有方法體的方法稱為抽象方法:
② 抽象方法用abstract來修飾;
③ 抽象方法代表一種不確定的操作或行為;
④ 抽象方法不能被調用;
抽象類的特點:
① 定義中含有抽象方法的類叫抽象類;
② 抽象類用abstract來修飾;
③ 抽象類代表一種抽象的對象類型;
④ 抽象類不能被實例化;
⑤ 抽象類中可以有具體方法,可以沒有抽象方法;
//A是一個抽象類
public abstract class A{
public void methodA(){
}
public abstract void methodB();
}
示例——根據給出的內容進行分析設計
① 需求:公司中所有的員工都有工號,姓名,薪水,工作;
② 教學總監除了員工所具備的特點以外,還有管理津貼;
③ 對給出的需求進行數據建模;
1 public class EmployeeDemo{
2 public static void main(String []atgs){
3 JavaTeacher teacher=new JavaTeacher(1,"張三",2000);
4 teacher.work();
5 Leader leader=new Leader(2,"李四",3000,10000);
6 leader.work();
7
8 //Employee emp=new Employee(3,"王五",4000);//抽象類不能被實例化
9
10 //抽象類也是父類,引用變數可以引用子類的對象
11 Employee teacher2=new JavaTeacher(4,"趙六",2500);
12 teacher2.work();
13 }
14 }
15
16 //抽象類
17 abstract class Employee{
18
19 private int number;
20 private String name;
21 private double salary;
22
23 public Employee(int number,String name,double salary){
24 this.number=number;//工號
25 this.name=name;//姓名
26 this.salary=salary;//薪水
27 }
28
29 public void aa(){
30 //抽象類中可以帶有實現的方法
31 }
32
33 //抽象方法的聲明
34 public abstract void work();
35 }
36
37 //一旦一個類去繼承了抽象類,那麼這個類要麼去實現抽象類中的抽象方法
38 //要麼繼續抽象下去
39 class JavaTeacher extends Employee{
40 public JavaTeacher(int number,String name,double salary){
41 super(number,name,salary);
42 }
43
44 //抽象方法的實現
45 public void work(){
46 System.out.println("上Java課");
47 }
48 }
49
50 class Leader extends Employee{
51 private double allowance;//津貼
52 public Leader(int number,String name,double salary,double allowance){
53 super(number,name,salary);
54 this.allowance=allowance;
55 }
56
57 //抽象方法的實現
58 public void work(){
59 System.out.println("培訓新員工");
60 System.out.println("設計教學課程");
61 }
62 }