1. 程式人生 > >Java學習日常(多型、包裝類、final修飾符、抽象類)

Java學習日常(多型、包裝類、final修飾符、抽象類)

學習內容

  • 多型中的instanceof運算子
public class Client1 {
    public static void main(String[] args) {
        Animal tom = new Dog();
        Animal mimi = new Cat();

        Animal ani1 = new Animal();

        if (ani1 instanceof Dog) { // 此處ani1的資料型別為 Animal 所以運算的結果為 false
            Dog dog1 = (Dog) ani1;
            System.out
.println(dog1.getAge()); } if (tom instanceof Dog) { // 此處tom執行時資料型別為 Dog 所以運算的結果為 true,可以進行轉換 Dog dog2 = (Dog) tom; // 強制型別轉換 dog2.setAge(20); System.out.println(dog2.getAge()); } tom.cry(); mimi.cry(); } }
  • 包裝類
    這裡寫圖片描述
  • final修飾符
public class Client1 {
    public static final String SCHOOL_NAME = "南通青鳥IT教育"; 
    public static void main(String[] args) {
        int r = 20;
        System.out.println(Math.PI * 2 * r);
//      Client1.SCHOOL_NAME = "青鳥IT教育"; // 錯誤程式碼,不能被修改
    }
}
方法的過載和重寫
  • 抽象類
package c1103;

public
abstract class Person { private String name; private String age; private Boolean sex; // private abstract void fun1(); // 錯誤的 // public abstract static void fun2(); // 錯誤的 public final void eat() { } // 此方法為抽象方法 public abstract void talk(); public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Boolean getSex() { return sex; } public void setSex(Boolean sex) { this.sex = sex; } public static void main(String[] args) { // Person p = new Person(); // 錯誤的 } }

學習總結

今日學習了重點多型,明白了Java引用型別變數有兩種型別:一種是編譯時的型別,一種是執行時的型別。

  1. 編譯的型別是由宣告變數的時候決定的。
  2. 執行時型別由實際賦給該變數的物件決定。