抽象類定義
1、語法定義:
抽象類錢使用abstract關鍵字修飾,則該類為抽象類。
2、應用場景:
a、在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法准確知道這些子類如何實現這些方法
(抽象類約束子類必須有哪些方法,但並不關注子類怎么去實現這些方法。)
b、從多個具有相同特征的類中抽象出一個抽象類,以這個抽象類作為子類的模板,從而避免了子類設計的隨意性。
3、作用:
限制規定子類必須實現某些方法,但不關注實現細節。
4、使用規則:
a、abstract定義抽象類
b、abstract定義抽象方法,只有聲明,不需要實現
c、包含抽象方法的類是抽象類
d、抽象類中可以包含普通的方法,也可以沒有抽象方法
e、抽象類不能直接創建,可以定義引用變量
(注:抽象方法沒有方法體,以分號結束。)
1 package com.imooc; 2 3 public abstract class Telphone { 4 public abstract void call(); 5 public abstract void message(); 6 }
1 package com.imooc; 2 3 public class CellPhone extends Telphone { 4 5 @Override 6 public void call() { 7 // TODO Auto-generated method stub 8 System.out.println("通過鍵盤打電話"); 9 } 10 11 @Override 12 public void message() { 13 // TODO Auto-generated method stub 14 System.out.println("通過鍵盤發短信"); 15 16 } 17 18 }
1 package com.imooc; 2 3 public class SmartPhone extends Telphone { 4 5 @Override 6 public void call() { 7 // TODO Auto-generated method stub 8 System.out.println("通過語音打電話"); 9 } 10 11 @Override 12 public void message() { 13 // TODO Auto-generated method stub 14 System.out.println("通過語音發短信"); 15 } 16 17 }
1 package com.imooc; 2 3 public class Initial { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 Telphone tel1 = new CellPhone(); 8 tel1.call(); 9 tel1.message(); 10 Telphone tel2 = new SmartPhone(); 11 tel2.call(); 12 tel2.message(); 13 } 14 15 }