繼承:在已經(jīng)有的功能上進(jìn)行擴(kuò)充
繼承關(guān)系:class? 子類? extends?? 父類,子類最低也要維持和父類相同的功能始绍,子類也可以進(jìn)行自己的擴(kuò)充话侄,例如擴(kuò)充屬性與方法,可以重用父類中定義的方法與屬性
繼承的使用限制:理論上子類可以操作父類的共享年堆,但是從另外一個(gè)角度說,繼承也是存在限制的
1.子類的實(shí)例化對象之前一定會先實(shí)例化父類對象芽狗,默認(rèn)調(diào)用分類的構(gòu)造方法之后,在調(diào)用子類的構(gòu)造方法童擎,進(jìn)行子類對象的實(shí)例化,在子類調(diào)用構(gòu)造方法之前有實(shí)例化父類super()顾复。在無參時(shí)候?qū)懪c不寫是一樣的
2.構(gòu)造方法的調(diào)用就一定要放在構(gòu)造方法的首行
3.如果父類中沒有提供無參構(gòu)造,那么這個(gè)時(shí)候就必須使用super()明確指出你要調(diào)用的父類構(gòu)造方法
4.java中只允許單繼承不允許多繼承芯砸,可以采用多層繼承
5.在繼承時(shí)候子類會繼承父類的所有結(jié)構(gòu)(私有屬性,構(gòu)造方法假丧,普通方法),所有的非私有是顯示繼承(直接調(diào)用),私有的屬于隱式繼承(通過其他形式調(diào)用例如setter getter)曹质,子類能使用的都是非private的屬性,與方法羽德,而所有的private都不能直接使用
總結(jié):實(shí)例化子類之前一定實(shí)例化父類