第六週學習報告

muxin1630發表於2024-08-10

又經過了一週的學習,今天對本週學習進行總結 本週學習了Java物件導向進階內容

抽象類和抽象方法

抽象類
使用abstract關鍵字宣告的類被稱為抽象類。抽象類不能被例項化。

抽象方法

使用abstract關鍵字宣告的方法被稱為抽象方法。抽象方法沒有方法體,即大括號{}內沒有程式碼實現。
抽象方法只能存在於抽象類中,或作為介面的一部分。如果一個類包含了抽象方法,那麼這個類也必須被宣告為抽象類。
示例

// 定義一個抽象類
abstract class Animal {
    // 抽象方法
    abstract void eat();
    // 非抽象方法
    void sleep() {
        System.out.println("Animal is sleeping.");
    }
}
// 實現抽象類的子類
class Dog extends Animal {
    // 必須實現父類的抽象方法
    void eat() {
        System.out.println("Dog is eating.");
    }
    // 可以選擇重寫非抽象方法
    void sleep() {
        System.out.println("Dog is sleeping soundly.");
    }
}
public class TestAbstract {
    public static void main(String[] args) {
        // 由於Animal是抽象類,不能直接例項化
        // 建立Dog類的例項
        Dog myDog = new Dog();
        // 呼叫方法
        myDog.eat();
        myDog.sleep();
    }
}

介面

介面是一種引用型別,和類一樣,也是一種型別,是由常量、抽象方法組成的特殊類。
介面中的方法預設是public abstract
介面中可以有常量
介面不能被例項化,介面沒有構造方法,因為介面代表的是一個規範,不能直接被例項化。
一個類可以實現多個介面,但只能繼承一個類
介面與介面之間可以繼承
示例

public interface InterfaceName {
    // 常量宣告
    public static final int CONSTANT_NAME = value;
    // 抽象方法宣告
    void method1();
    default void defaultMethod() {
        // 方法體
    }
    static void staticMethod() {
        // 方法體
    }
}

內部類

成員內部類
成員內部類是非靜態的,它依賴於外部類的例項。
靜態內部類
靜態內部類不依賴於外部類的例項,可以在沒有外部類例項的情況下建立靜態內部類的例項。靜態內部類不能訪問外部類的非靜態成員,但可以訪問外部類的靜態成員。
區域性內部類
區域性內部類是定義在方法或作用域內的類。它只能在其定義的作用域內被訪問和使用,並且不能包含靜態成員。區域性內部類可以訪問外部類的成員,也可以訪問定義它的方法或作用域內的區域性變數。
匿名內部類
匿名內部類是沒有名稱的內部類,它通常用於實現介面或繼承其他類。

相關文章