JAVA課堂動手動腦
阿新 • • 發佈:2018-11-04
實驗心得:
1.
package test; class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + string); } } class Parent extends Grandparent {public Parent() { //super("Hello.Grandparent."); System.out.println("Parent Created"); // super("Hello.Grandparent."); } } class Child extends Parent { public Child() { System.out.println("Child Created"); } } public class TestInherits { @SuppressWarnings("unused") public static void main(String args[]) { Child c = new Child(); } }
通過 super 呼叫基類構造方法通過 super 呼叫基類構造方法,必須是子類構造方法中的第一個語句。
2.在子類中,若要呼叫父類中被覆蓋的方法,可以使用super關鍵字。
3.當子類與父類擁有一樣的方法,並且讓一個父類變數引用一個子類物件時,到底呼叫哪個方法,由物件自己的“真實”型別所決定,這就是說:物件是子型別的,它就呼叫子型別的方法,是父型別的,它就呼叫父型別的方法。
4.型別轉換
package test; class Mammal{} class Dog extends Mammal {} class Cat extends Mammal{} public class TestCast { public static void main(String args[]) { Mammal m; Dog d=new Dog(); Cat c=new Cat(); m=d; //d=m; d=(Dog)m; //d=c; //c=(Cat)m; } }
子類物件可以直接賦給基類變數。
基類物件要賦給子類物件變數,必須執行型別轉換,
其語法是: 子類物件變數=(子類名)基類物件名;