最近在面試過程中,遇到許多抽象類和介面的面試題,所以今天特意研究了下,然後寫出來分享給大家,希望對面試的朋友有幫助,如果覺得寫的可以點個贊吧! 1:抽象類可以實例化,抽象類可以通過子類間接的實例化父類,介面不能實例化。 2:抽象類可以擁有私有屬性、方法,介面不能擁有。 3:抽象類方法不能使用defa ...
最近在面試過程中,遇到許多抽象類和介面的面試題,所以今天特意研究了下,然後寫出來分享給大家,希望對面試的朋友有幫助,如果覺得寫的可以點個贊吧!
1:抽象類可以實例化,抽象類可以通過子類間接的實例化父類,介面不能實例化。
2:抽象類可以擁有私有屬性、方法,介面不能擁有。
3:抽象類方法不能使用default關鍵字 修飾,介面方法可以。
3:抽象類只能被extends不能被implements,介面可以被implements和extends
5:介面沒有構造方法,抽象方法有
6:介面不占用堆空間,抽象類占用堆空間。
7:介面所有變數都是public static final 不可變, 抽象類可以使用任意許可權修飾符修飾變數。
8:抽象類不能多extends,介面可以多extends
9:抽象類抽象方法可以被public, protected修飾,介面抽象類只能被public 修飾
10:private 可以修飾內部類,private 不能修飾內部介面
個人想法:可以使用介面代替工具類,有些情況可以代替抽象類。介面支持多繼承,支持方法重寫。介面不能實例化,抽象類和工具類可以通過反射實例化