今日份學習內容繼承、this、super、抽象並解決昨日問題、並加入新的題庫還要新鮮的附加題大餐哦。
1.繼承(extends)
1)格式:子類 extends 父類
2)注:繼承沒有多繼承,若繼承子類的方法沒有在,則尋找父類的方法;
3)子類如何訪問父類
區域性變數直接寫變數名
本類成員變數:this.變數名
父類成員變數:super.變數名
4)重寫:(@override)在繼承方法中,變數名相同,引數列表相同,返回型別(返回型別的父類相同或者父類的子類相同)、訪問修飾符許可權(大於或等於父類的訪問修飾符,同時父類不能是private類)
注:classcastexception 轉換型別異常
5)過載:(@overload)方法名相同,引數列表不同
6)**執行的優先順序
找到main方法–>初始化靜態**塊–>回到main方法–>執行main方法的程式建立物件–>執行非靜態**塊–>構造方法–>再回到main方法執行下面的語句。總之,(靜態變數、靜態**塊)–>(普通變數、**塊)–>(構造方法)–>(普通方法)。最後再繼承關係中,先載入父類靜態**塊和父類靜態變數–>子類靜態**塊、子類靜態**塊–>父類**塊、父類成員變數、父類構造方法–>子類**塊、子類成員變數、構造方法
2.this和super(this訪問本類內容,super訪問父類的內容)
使用方式:
1)在本類成員方法中,訪問成員變數
2)在本類成員方法中,訪問父類的另外乙個方法
3)在本來構造方法中,呼叫另外乙個構造方法
注意:不管是this還是super都必須寫在方法的第一行,否則會報錯,其次this和super不能同時使用,因為他們都是必須寫在第一行的,會報錯。
3.抽象
1)理解:比如動物很抽象,不知道什麼動物,但是動物分為人和老鼠、狗等,狗又分為很多種哈士奇、金毛等,這些狗叫的方式不一樣。慢慢的由抽象到具體。
2)定義:只要方法內有乙個abstract直接去掉大括號,且以分號結尾的。
3)** 有抽象方法的一定是抽象類 這句話是對的;
4)如何使用抽象類和方法
不能直接new乙個物件
需要乙個子類來繼承抽象方法,若子類沒有,需要父類重寫
可以有成員變數
可以有構造方法
可以實現具體方法。
好了本次的習題就到這裡了。
6.今日練:
1,如何實現向下轉型,需要注意什麼
2.==和equals的區別;
3,對於 public users
4.static屬性修飾的變數,相對於例項變數有什麼特別之處
5.基本資料型別、包裝類、string三者轉化關係
6.輸入使用者名稱和密碼,與儲存的使用者名稱和密碼比較,如何使用者名稱和密碼正確,返回正確,否則返回
7.附加題
1.實現猜數字遊戲
每天學點GDB 2
在一中提到gdb最最基本的用法,在本節主要講述一下如何讓gdb在斷點處列印一下診斷資訊,但程式執行本身不會中斷。先稍微改一改源程式 include include int main int argc,char argv return 0 假設要在執行期間檢視i值的變化。如果是step by step...
每天都要打魚 閱讀摘錄2
2005年3月1日 性格是怎樣決定命運的 一位日本的心理學大師說過一句話 心理變,態度亦變 態度變,行為亦變 行為變,習慣亦變 習慣變,人格亦變 人格變,命運亦變。換句話說,乙個人要想運勢好,他的性格首先要好。你不能總是讓別人跟你在一起不舒服,這樣做人就缺少親和力,所以人在有自知之明之後能夠像古人說...
每天學習點js 2
在日常開發中可能有很多不被重視但有關係著基礎的知識,下面我們就來看看這幾道題吧 題1 1 2 3 map parseint 輸出結果為 1nan,nan 因為parseint需要2個引數 val,radix 單map傳了3個 element,index,array 題2 typeof null,nu...