Java零散知識點整理(二)(構造方法、繼承)

WeilingDu發表於2020-10-07

Java零散知識點整理(二)(構造方法、繼承)

構造方法

  1. 基本形式

    public 類名(引數列表){}

  2. 可以有多個建構函式

    public Student(String name, int age, double grade) {
        this.name = name;
        this.age = age;
        this.grade = grade;
    }
    
    public Student(String name){
        this.name = name;
        this.age = 20;
        this.grade = 3.0;
    }
    
    public Student(){
        this.name = "unnamed";
        this.age = 0;
        this.grade = 0;
    }
    
  3. 根據引數判斷呼叫哪個建構函式

    Student student = new Student("Mike", 21, 3.5);
    Student jack = new Student("Jack");
    Student somebody = new Student();
    
  4. 類中的欄位可以有初始值,構造物件時,先將欄位設定為初始值,然後根據建構函式進行修改。

繼承

  1. A繼承自B,則A擁有B的欄位和方法。

    • 若B中的欄位是private,那麼該欄位只被A擁有,但是不能使用。
    • 通常將B中的欄位設為protected,那麼該欄位可以被其子類使用,而不能被其他類使用。
  2. B稱為父類,A稱為子類。

    // 當Student是Persond的子類時
    Person p1 = new Person();  // 正確
    Person p2 = new Student();  // 正確,因為Student是一個Person
    Student p3 = new Person();  // 錯誤
    

但p2無法使用Student中獨有的方法,需要做型別轉換。

可以用以下方法檢視是什麼型別:

System.out.println(p1 instanceof Student);
System.out.println(p2 instanceof Student);
  1. 以如下方式建立子類:
public class Student extends Person{}

注意:把類名寫全。當沒寫全時,先在當前包下面尋找是否有該類。

public class Student extends cn.weiling.ex02.Person{}
  1. super()的使用:在子類的建構函式中呼叫父類的建構函式。

相關文章