Java中的abstract關(guān)鍵字用于定義抽象類和抽象方法。
例子:
abstract class Animal {
// 抽象方法
public abstract void sound();
// 非抽象方法
public void sleep() {
System.out.println("Animal is sleeping");
}
}
抽象類中可以包含抽象方法和非抽象方法。抽象方法沒有具體的實(shí)現(xiàn),只有方法的聲明,而非抽象方法有具體的實(shí)現(xiàn)。子類繼承抽象類時(shí),必須實(shí)現(xiàn)所有的抽象方法。
例子:
abstract class Animal {
// 抽象方法
public abstract void sound();
}
子類繼承抽象類時(shí),必須實(shí)現(xiàn)父類中的抽象方法,否則子類也必須聲明為抽象類。
抽象類不能被實(shí)例化,只能被繼承。
抽象類可以包含抽象方法和非抽象方法。
子類繼承抽象類時(shí),必須實(shí)現(xiàn)所有的抽象方法。
如果子類沒有實(shí)現(xiàn)抽象類中的所有抽象方法,那么子類也必須聲明為抽象類。
抽象類可以有構(gòu)造方法,但不能通過new操作符來創(chuàng)建抽象類的實(shí)例。
總結(jié):抽象類和抽象方法用于定義一種具有一定抽象性質(zhì)的類和方法,它們不能直接被實(shí)例化,只能被繼承和實(shí)現(xiàn)。抽象類和抽象方法的使用可以提高代碼的靈活性和可擴(kuò)展性。