Java抽象類和方法
數據抽象是隱藏某些細節,只向用戶顯示基本信息的過程。
抽象可以通過抽象類或接口來實現(你將在下一章詳細了解這些內容)。
abstract關鍵字是一個非訪問修飾符,用於類和方法:
- 抽象類: 是一個受限制的類,不能用於創建對象(要訪問它,必須通過它的子類對象)。
- 抽象方法: 只能在抽象類中使用,抽象方法沒有主體,主體由抽象類的子類提供。
抽象類可以有抽象方法和常規方法:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
Animal是抽象類,不能創建抽象類的對象:
Animal myObj = new Animal(); // 將報錯
要訪問抽象類,必須通過它的子類。
記住,在繼承一章中介紹過,使用
extends關鍵字來繼承類。
示例
// 抽象類
abstract class Animal {
// 抽象方法(沒有主體)
public abstract void animalSound();
// 常規方法
public void sleep() {
System.out.println("Zzz");
}
}
// 子類(繼承Animal)
class Pig extends Animal {
public void animalSound() {
// 這里提供了animalSound()的主體
System.out.println("小豬說: 嗚嗚");
}
}
class MyMainClass {
public static void main(String[] args) {
Pig myPig = new Pig(); // 創建一個Pig對象
myPig.animalSound();
myPig.sleep();
}
}
為什么以及何時使用抽象類和方法?
實現安全性 - 隱藏細節,只對外顯示對象的重要信息。
