java隨筆
封裝:1.訪問修飾符
2.方法的實現
繼承:子類通過繼承父類,從而自動具備來自於父類的屬性和行為。
本章目標:
1.理解繼承的概念
2.掌握JAVA中繼承的實現的方式
3.理解方法的重寫(也是一種多態)
4.理解最終類的和最終方法
設計原則:(7種)
1.開閉原則:軟件對於擴展應該是開放的,對於修改已有的代碼是關閉的。
繼承的語法:Public class (子類)extends (父類),JAVA裏是單繼承。
超類(或者叫基類)--派生類(對與子類的稱呼)
父類--子類
場景:
Has a:有的屬性
Use a:擁有的行為
Is a:是的繼承
子類必須要和父類有is a 的關系,才能設計繼承而不是只要有相同屬性和行為,就設計繼承的關系。
多繼承與單繼承
多繼承的優點:
1.豐富度好
2.
單繼承的優點:
1.層次性清晰(接口用於填補豐富度)
java.lang.Object(根類)是所有類的根類包括數組。
細節:所有類的根類都是Object
1.如果定義類不寫extends會默認繼承Object
Object中的重要方法:
Public final Class getClass(); 我們在下冊書反射第十四章講
hashCode();下冊書集合框架第十四章
Equals/to String/finalize 本堂課講
Notify 在多線程講
Clone() 進階部分設計模式的時候將
1.Protected(受保護的)viod finalize()throws Throwable
Finalize是方法名,final與finally是關鍵字。
Sysetem.gc();召喚垃圾回收
2.引用數據類型變量用雙等號比較,是在比較兩個變量是否指向同一個對象。引用數據類型變量用equals方法比較,才是比較兩個對象內容是否在業務上是否相等。需要根據具體業務進行重寫
3.子類可以重寫繼承於父類的方法。所謂重寫是指子類把父類的已有的某個方法,重現實現一次而不是添加一個新的發放
要求:只有方法有重寫和重載
1.方法名、形參列表、返回類型不能變
2.訪問修飾符不能比父類的小
3.子類重寫後方法不能比父類重寫前的方法拋出更多的異常
調用後體現重寫後的效果
To string
作用:返回對象字符串的描述,當我們直接打印一個對象進行字符串拼接操作,JVM會自動調用這個對象的toString。也是用於做重寫的。
重載與重寫:都是多態--相同行為不同實現
重載是指一個類之中相同行為不同實現
重寫是指有繼承關系的多個類中相同行為不同實現
內存
構造方法語法不能用於繼承,但參與了繼承的構造法方。
內存疊加:當產生一個新的子類對象時,先找找到父類的執行方法劃分分類的空間和屬性,再賦予初始值最後執行代碼,然後在執行子類的劃分空間和屬性,再賦予初始值最後執行代碼,利用內存疊加完成子類的對象的產生。
This();調用本類的其他構造,寫在本類構造方法中且只能是第一句.與super();不能共存.
Super();調用父類的指定構造,寫在子類的構造方法中且只能寫在第一句.與super();是默認的
This.訪問當前對象的屬性和方法或訪問父類中被訪問修飾符允許的屬性和方法.
super.訪問當前對象中來自於父類的那一部分的被訪問修飾符允許的屬性和方法.
只有需要調用本類某個方法重寫前(父類中子類重寫的原方法)效果時,使用super.其他時候全部使用this.
Final(最終的)關鍵字
final修飾變量,那麽變量變常量.
final修飾類,那麽不可有繼承的子類,又稱為最終類.
final修飾方法,表達這個方法不能夠重寫.
java隨筆