什麼是方法重寫?
在繼承關系中,子類的方法與父類的某一方法具有相同的方法名、傳回類型和參數清單,則稱子類的該方法重寫(覆寫)父類的方法。
什麼是多态?
多态意味着一個對象有着多種形态,可以在特定的情況下,表現不同的狀态,進而對應着不同的屬性和方法。
簡單的說,多态就是使用父類類型的變量引用子類對象,根據被引用子類對象的特性,程式會得到不同的運作效果。
抽象類和接口的差別是什麼?
在Java中,使用abstract關鍵字修飾的類稱之為抽象類。抽象類是不能被執行個體化的,
通常需要寫一個子類來繼承抽象類,同時執行個體化子類來獲得該類的對象。抽象類通常用于表示一種抽象的概念。
接口可以說是一種特殊的抽象類,接口中隻能定義常量和抽象方法。由于接口的特殊性,在定義時需要使用interface關鍵字。
請簡述方法重寫和方法重載的差別?
方法重寫(Overriding)和方法重載(Overloading)是Java多态性的不同表現。
重寫Overriding是父類與子類之間多态性的一種表現,重載Overloading是一個類中多态性的一種表現。
如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。
子類的對象使用這個方法時,将調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。
如果在同一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。
請簡述Error和Exception有什麼差別?
Error表示恢複不是不可能但很困難的情況下的一種嚴重問題,比如說記憶體溢出,僅靠修改程式本身是不能處理這樣的情況的。
Exception表示程式本身可以處理的錯誤,在開發Java程式中進行的異常處理,都是針對Exception類及其子類。
在Exception類的衆多子類中有一個特殊的RuntimeException類,該類及其子類用于表示運作時異常,
除了此類,Exception類下所有其他的子類都用于表示編譯時異常。