Java學習日常(多型、包裝類、final修飾符、抽象類)
阿新 • • 發佈:2018-11-09
學習內容
- 多型中的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引用型別變數有兩種型別:一種是編譯時的型別,一種是執行時的型別。
- 編譯的型別是由宣告變數的時候決定的。
- 執行時型別由實際賦給該變數的物件決定。