2019-10-24-23:21:17 目錄 1.抽象的方法 2.抽象類 3.抽象類和抽象方法的使用 4.抽象類的註意事項 5.案例代碼 1.抽象的方法 What:如果父類當中的方法不確定如何進行{}方法體實現,那麼這就是一個抽象方法。 抽象方法:就是加上abstract關鍵字,然後去掉大括弧,直接 ...
2019-10-24-23:21:17
目錄
1.抽象的方法
2.抽象類
3.抽象類和抽象方法的使用
4.抽象類的註意事項
5.案例代碼
1.抽象的方法
What:如果父類當中的方法不確定如何進行{}方法體實現,那麼這就是一個抽象方法。
抽象方法:就是加上abstract關鍵字,然後去掉大括弧,直接分號結束。
抽象類:抽象方法所在的類,必須是抽象類才行。在class之前寫上abstract即可。
2.抽象類
抽象類除了包含抽象方法外,還可以包含具體的變數和具體的方法。類即使不包含抽象方法,也可以被聲明為抽象類,防止被實例化
3.抽象類和抽象方法的使用
1.不能直接創建new抽象類對象。
2.必須用一個子類來繼承抽象父類。
3.子類必須覆蓋重寫抽象父類當中所有的抽象方法。
覆蓋重寫(實現) :子類去掉抽象方法的abstract關鍵字,然後補上方法體大括弧。
4.創建子類對象進行使用
4.抽象類的註意事項
1.抽象類不能創建對象,如果創建,編譯無法通過而報錯。只能創建其非抽象子類的對象。
2.抽象類中,可以有構造方法,是供子類創建對象時,初始化父類成員使用的。
3.抽象類中,不一定包含抽象方法,但是有抽象方法的類必定是抽象類。
4.抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則,編譯無法通過而報錯。除非該子類也是抽象類。
5.抽象類不能被實例化,抽象方法必須在子類中被實現
5.案例代碼
1 package demopra;
2 //定義一個抽象類
3 abstract class Employees {
4 //定義一個變數
5 private String name;
6 //空參構造方法
7 public Employees() {
8 }
9 //全參構造方法
10 public Employees(String name) {
11 this.name = name;
12 }
13 //定義一個抽象方法
14 public abstract void work();
15
16 // @Override
17 // public String toString() {
18 // return "Employees{" +
19 // "name='" + name + '\'' +
20 // '}';
21 // }
22 //Getter和Setter
23 public void setName(String name) {
24 this.name = name;
25 }
26
27 public String getName() {
28 return name;
29 }
30 }
1 package demopra;
2 //定義一個抽象類的子類
3 public class Teacher extends Employees{
4 //必須實現的方法,重寫父類中的方法
5 @Override
6 public void work() {
7 System.out.println("我叫"+this.getName()+",是你們這學期的班主任");
8 }
9 }
1 package demopra;
2 //定義一個抽象類的子類
3 public class Driver extends Employees{
4 //必須實現的方法,重寫父類中的方法
5 @Override
6 public void work() {
7 System.out.println("我叫"+this.getName()+",是一名計程車司機");
8 }
9 }
1 package demopra;
2
3 public class AbstractTest {
4 public static void main(String[] args) {
5 //創建一個Teacher對象
6 Teacher teacher = new Teacher();
7 //為Teacher對象添加一個名字
8 teacher.setName("張三");
9 //執行重寫的方法
10 teacher.work();
11
12 //創建一個Driver對象
13 Driver driver = new Driver();
14 //為Driver對象添加一個名字
15 driver.setName("李四");
16 //執行重寫的方法
17 driver.work();
18 }
19 }
運行結果
我叫張三,是你們這學期的班主任
我叫李四,是一名計程車司機