面向对象继承与多态
this和super的區(qū)分: ? ??this代表本類對象的引用 ? ??super本類對象父類的引用。 ? ??this可以用于區(qū)分局部變量和成員變量同名的情況。 ? ??一般,子類中不會出現(xiàn)和父類同名的成員變量。面試可能問到。 父類: 子類 測試類: 重寫(override)和重載(overload)的區(qū)別: ? ??重載的特點:在同一類中。方法名相同,參數(shù)列表不同。 ? ??重寫的特點:要有繼承關(guān)系。在子父類中方法的聲明相同。(方法名和參數(shù)列表都相同)覆蓋時,子類方法權(quán)限一定要大于等于父類方法權(quán)限。父類的權(quán)限不能是私有的。靜態(tài)只能覆蓋靜態(tài)。 父類 子類 測試類 我現(xiàn)在給大家講課,我講課是基于課程大綱。圍繞課程大綱的框架進(jìn)行架構(gòu),通過重寫方法,我可以完善大綱當(dāng)中的不足,彌補方法當(dāng)中的漏洞。 final關(guān)鍵字: ? ??final可以修飾類,方法,變量。final修飾的類不可以被繼承。final修飾的方法不可以被覆蓋。final修飾的變量是一個常量。只能被賦值一次。 final和private區(qū)別: ? ??final修飾的類可以訪問。可以給其他容器賦值,但不能進(jìn)行修改,如果設(shè)置final關(guān)鍵字的屬性后,則不能使用構(gòu)造函數(shù)傳遞數(shù)據(jù)。比如:設(shè)置了屬性final后,不能再構(gòu)造函數(shù)中this.不可修改的數(shù)據(jù) = 修改的數(shù)據(jù);如果這么寫,會直接報錯。 private修飾的屬性,不能直接進(jìn)行訪問,而是必須通過get與set方法進(jìn)行數(shù)據(jù)的傳遞。但他可以通過set方法進(jìn)行對數(shù)據(jù)的修改。(不能直接方法,但可以通過方法訪問,也可以通過方法修改。) 最后: ? final修飾的方法不可以被子類重寫 ? private修飾的方法表面上看是可以被子類重寫的,其實不可以,子類是看不到父類的私有方法的。 ? final修飾的變量只能在顯示初始化或者構(gòu)造函數(shù)初始化的時候賦值一次,以后不允許更改。 ? private修飾的變量,也不允許直接被子類或一個包中的其它類訪問或修改,但是他可以通過set和get方法對其改值和取值。 ??學(xué)習(xí)程序要結(jié)合著生活中的例子去理解,不要就在程序中死扣,這樣反而讓你越來越越暈,比如理解繼承有父親有兒子,兒子從父親那里繼承非私有的東西很正常。 多態(tài): 某一類事物的多種存在形態(tài)。 方法重載(靜態(tài)多態(tài)) 方法重寫(動態(tài)多態(tài),對象多態(tài))對象多態(tài)的前提 類與類(或接口)要有繼承(或?qū)崿F(xiàn))關(guān)系。 一定要有方法的重寫。 一定要有父類或者接口的引用指向子類的對象。 Person p = new SuperMan(); SuperMan sm = (SuperMan)p; 多態(tài)思想:可以指揮同一類型的一批對象做事情。多態(tài)的出現(xiàn)讓我們復(fù)雜的問題簡單化了。 父類: 子類: 測試類:
轉(zhuǎn)載于:https://www.cnblogs.com/hqf520/p/7930595.html
總結(jié)
- 上一篇: 停课集训 11.29
- 下一篇: 一、数据的逻辑结构