Java super意思

在Java中,super是一個關鍵字,它用於引用當前對象的父類(超類)中的方法或屬性。當子類想要訪問父類中的方法或屬性時,可以使用super來訪問。

以下是super關鍵字的一些常見用法:

  1. 訪問父類構造函式: 當子類沒有顯示地調用父類的構造函式時,Java會默認調用父類的無參構造函式。如果父類沒有無參構造函式,那么子類需要顯示地調用父類的構造函式,這可以通過super關鍵字來實現。

    public class Parent {
        public Parent(String name) {
            System.out.println("Parent constructor with name: " + name);
        }
    }
    
    public class Child extends Parent {
        public Child(String name) {
            super(name); // 調用父類的有參構造函式
        }
    }
  2. 訪問父類方法: 如果子類想要重寫父類的方法,但又想要在某些情況下調用父類的方法,那麼可以使用super來調用父類的方法。

    public class Parent {
        public void sayHello() {
            System.out.println("Hello from Parent");
        }
    }
    
    public class Child extends Parent {
        @Override
        public void sayHello() {
            super.sayHello(); // 調用父類的sayHello方法
            System.out.println("Hello from Child");
        }
    }
  3. 訪問父類屬性: 如果子類想要訪問父類的屬性,也可以使用super來訪問。

    public class Parent {
        private String name;
        public Parent(String name) {
            this.name = name;
        }
    }
    
    public class Child extends Parent {
        public void printName() {
            System.out.println("Child's name: " + this.name);
            System.out.println("Parent's name: " + super.name); // 訪問父類的name屬性
        }
    }

需要注意的是,super關鍵字只能在子類中使用,並且只能在子類的成員方法或構造函式中使用,不能在靜態方法中使用。此外,super關鍵字也不能用來訪問父類的私有屬性和方法。