面向對象程序設計有三大特征,分別是封裝,繼承和多態。
這三大特性相輔相成,可以使程序員更容易用編程語言描述現實對象。
其中多態
多態是方法的多態,是通過子類通過對父類的重寫,實現不同子類對同一方法有不同的實現,從而達到靈活的編程。
重載和重寫的區別:
重載是同一類中,寫多個相同的方法名但不同參數的方法,在調用方法時,根據傳參類型、數量的不同,執行不同的函數。
重寫是有繼承關系的不同類中,子類對父類的相同函數重寫的過程。
重載
主類:
public class Main {public static void main() {Student stu = new Student();System.out.println(stu.think();System.out.println(stu.think(12,20);System.out.println(stu.think("數風流人物,還看今朝"));}
}
學生類:
// 重載
// 在類中把think方法重載
// 對于學生類的思考,傳入不同的參數類型可以運行不同的實現
public class Student() {public static void think() {// 學生開始思考System.out.println("僅僅開始思考...");}public static void think(int a,int b){// 學生計算兩數相加System.out.println("兩數相加等于: "a+b);}public static void think() {// 學生朗讀文本System.out.println("開始朗讀文本: "+str);}
}
重寫
主類
public class Main {public static void Main() {// 多態的條件3(父類的引用指向子類的對象)Animal a = new Yuji();Animal b = new Gongsunli();a.speak();b.speak();}
}
ADC類(父類)
public class Animal {// 射手說話的函數public void speak() {System.out.println("射手正在說話...");}
}
公孫離類(子類)
// 多態的條件1(父子類有繼承關系)
public class Gongsunli extends Animal {// 公孫離類開始說話// 多態的條件2(子類需要重寫父類的某方法)@Overridepublic void speak() {System.out.println("花綻放于長安的春日,溫暖又幸福。")}
}
虞姬類(子類)
public class Yuji {// 虞姬類開始說話@Overridepublic void speak() {System.out.println("來來,妾當與大王對飲。")}
}
其中父類引用指向子類對象,能用什么方法看左邊,具體用的是什么看右邊。
Object a = new Student();