繼承與多態

第十七講

A)構造方法的重載:只需看參數即可。如果想在一個構造方法中調用另外一個構造方法,那么可以用this()的方式調用,this()括號中的參數表示目標構造方法的參數。this()必須要作為構造方法的第一條語句。

B)繼承:Java是單繼承的,意味著一個類只能繼承另一個類,繼承使用extends關鍵字。

C)當生成子類對象時,會默認先調用父類的不帶參數的構造方法,生成父類對象,再執行該子類的構造方法,生成子類對象。

D)如果子類的構造方法想調用調用父類的構造方法,可以用super()來顯式調用,這樣就不會尋找父類不帶參數的構造方法。與this()一樣,super()必須為構造方法中的第一條語句。

?

E)關于繼承的3點

1)父類有的,子類也有

2)父類沒有的,子類可以增加

3)父類有得,子類可以改變

?

F)關于繼承的注意事項

1)構造方法不能被繼承

2)方法和屬性可以被繼承

3)子類的構造方法隱式調用父類不帶參數的構造方法

4)當父類沒有不帶參數的構造方法,子類要用super()來調用父類的構造方法

?

G) 方法重寫:子類與父類的方法返回類型一樣,名稱一樣,參數一樣,這樣子類與父類方法構成了重寫關系。

H)方法重寫 與 方法重載 的關系:重載發生在同一個類內部,重寫發生在父類與子類之間。

I)子類的方法內可以用 super().方法 形式來調用父類的方法,且不必擺在方法的第一行。

J)在定義一個類時,如果沒有顯示指定該類的父類,那么該類就會繼承于java.lang.Object類。

K)多態:子類就是父類,男人是人,玫瑰是花,多態是指:父類型的引用可以指向子類型的對象。

?

L)Parent p = new Child();當使用多態方式調用方法時,首先檢查父類中是否有那個方法,如果沒有則編譯錯誤。因為p是父類型,父類型不一定有子類型的方法。

a)向上類型轉換(upcast):比如說Cat類型轉換為Animal類型,即子類轉換為父類型,不需要顯示指定。

b)向下類型轉換(downcast):比如Animal類型轉換為Cat類型,即父類型轉換為子類型,需要使用強制類型轉換,同時這個父類的引用需要指向該子類的對象。

?

轉載于:https://www.cnblogs.com/vmax-tam/p/4050138.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375539.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375539.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375539.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++學習心得

c是大一開始接觸的一門新的語言,說老實話當時學的并不好興趣指數5顆星中只有3顆。但是既然是學這方面的,還是好好聽課學習吧。下面簡單的說一下c的一些學習心得吧! c是什么?c是一種面向對象的程序設計語言。c是c的一種提高&#x…

實現strstr()

實現 strStr() 函數。 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例 1: 輸入: haystack "hello", needle "ll" 輸出: 2示例…

有效電話號碼

給定一個包含電話號碼列表(一行一個電話號碼)的文本文件 file.txt,寫一個 bash 腳本輸出所有有效的電話號碼。 你可以假設一個有效的電話號碼必須滿足以下兩種格式: (xxx) xxx-xxxx 或 xxx-xxx-xxxx。(x 表示一個數字…

JSP中RequestDispatcher的用法

RequestDispatcher是一個Web資源的包裝器&#xff0c;可以用來把當前request傳遞到該資源&#xff0c;或者把新的資源包括到當前響應中。RequestDispatcher接口中定義了兩個方法&#xff1a;include/forward 由于<jsp:include>只能指定固定的jsp文件名&#xff0c;不能動…

TCP/IP三次握手與四次握手

原文地址 http://blog.csdn.net/whuslei/article/details/6667471 http://blog.csdn.net/wo2niliye/article/details/48447933 建立TCP需要三次握手才能建立&#xff0c;而斷開連接則需要四次握手。整個過程如下圖所示&#xff1a; 先來看看如何建立連接的。 首先Client端發送連…

vim支持nginx語法高亮

下載nginx源碼&#xff0c;解壓之后&#xff0c;將contribu/vim/*拷貝到~/.vim/目錄&#xff0c;如果沒有~/.vim/目錄&#xff0c;則創建即可。 cp -r contrib/vim/* ~/.vim/或 mkdir -p ~/.vim/ cp -r contrib/vim/* ~/.vim/此時再打開conf/nginx.conf就可以看到已經語法高亮…

Delphi 正則表達式語法(4): 常用轉義字符與 .

Delphi 正則表達式語法(4): 常用轉義字符與 . // \d 匹配所有數字, 相當于 [0-9] varreg: TPerlRegEx; beginreg : TPerlRegEx.Create(nil);reg.Subject : 期待Delphi 2008 for Win32&#xff01;;reg.RegEx : \d;reg.Replacement : ◆;reg.ReplaceAll;ShowMessage(reg.Subje…

C語言操作mysql

php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 實現 前者 從 php 5.3.0起已內置到php中, 并且支持更多的特性&#xff0c;推薦用 mysqlnd mysqlnd &#xff0c; libmysqlclient 對比&#xff1a;http://php.net/manual/en/mysqlinfo.library.choosing.php mysqlnd 目前是…

Hadoop DistributedCache分布式緩存的使用

轉載請注明&#xff1a;http://www.cnblogs.com/demievil/p/4059141.html 我的github博客&#xff1a;http://demievil.github.io/ 做項目的時候遇到一個問題&#xff0c;在Mapper和Reducer方法中處理目標數據時&#xff0c;先要去檢索和匹配一個已存在的標簽庫&#xff0c;再對…

每日溫度

根據每日 氣溫 列表&#xff0c;請重新生成一個列表&#xff0c;對應位置的輸出是需要再等待多久溫度才會升高超過該日的天數。如果之后都不會升高&#xff0c;請在該位置用 0 來代替。 例如&#xff0c;給定一個列表 temperatures [73, 74, 75, 71, 69, 72, 76, 73]&#xf…

什么是Modbus

什么是Modbus 1. Modbus如何工作 Modbus是通過設備之間的幾根連線來傳遞數據&#xff0c;最簡單的設置就是主站和從站之間用一跟串口線相連。數據通過一串0或者1來傳遞&#xff0c;也就是位。0為正電壓&#xff0c;1為負電壓。位數據傳遞速度非常快&#xff0c;常見的傳輸速度為…

博客剛剛開通!

今天老賊開播了&#xff01;以后請大家多多關照&#xff01; 轉載于:https://www.cnblogs.com/xiaosayi/p/4065313.html

Android實例-拍攝和分享照片、分享文本(XE8+小米2)

結果&#xff1a; 1.分享文本不好使&#xff0c;原因不明。有大神了解的&#xff0c;請M我&#xff0c;在此十分感謝。 2.如果想支持圖片編輯&#xff0c;將Action事件的Editable改為True。 相關資料&#xff1a; 官網地址&#xff1a;http://docwiki.embarcadero.com/RADStudi…

go語言 expected ; found a

錯誤代碼&#xff0c;這是一段測試go語言類型轉換的代碼 package type_testimport "testing"type MyInt int64func TestImplicit(t *testing.T) {var a int32 1var b int64 3b (int64)avar c MyInt 4// c bt.Log(a, b, c) }報錯代碼 b (int64)a改正 b int6…

win8 metro 調用攝像頭拍攝照片并將照片保存在對應的位置

剛剛做過這類開發&#xff0c;所以就先獻丑了&#xff0c;當然所貼上的源代碼都是經過驗證過的&#xff0c;已經執行成功了&#xff0c;希望能夠給大家一些借鑒&#xff1a; 以下是metro UI代碼&#xff1a; <Pagex:Class"Camera.MainPage"xmlns"http://sche…

poj 3678 Katu Puzzle(2-sat)

Description Katu Puzzle is presented as a directed graph G(V, E) with each edge e(a, b) labeled by a boolean operator op (one of AND, OR, XOR) and an integer c (0 ≤ c ≤ 1). One Katu is solvable if one can find each vertex Vi a value Xi (0 ≤ Xi ≤ 1) suc…

go 語言 first argument to append must be slice

錯誤代碼 func TestSliceGrowing(t *testing.T) {s : [4]int{1, 2, 3, 4}for i :0; i<10; i {s append(s, i)t.Log(len(s), cap(s))} }報錯代碼 s append(s, i)原因&#xff1a;append的第一個參數必須是切片 更正 func TestSliceGrowing(t *testing.T) {s : []int{1,…

豆瓣網靜態頁面

divcss網站登錄注冊豆瓣讀書視頻 音樂同城小組閱讀 豆瓣FM東西更多豆瓣視頻 影訊&購票電視劇排行榜 分類影評預告片 向后向前3/5正在熱映全部正在熱映>>即將上映 烈日灼心 4.7終結者&#xff1a;創世紀... 4.7百團大戰 4.7刺客&#xff1a;聶隱娘 4.7近期熱門更多影視…

C++并發編程實戰(豆瓣評分5.4)

評分已說明一切&#xff0c;切勿踩坑&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 推薦的翻譯 C并發編程實戰 關注公眾號回復【C并發編程實…

Please use boost/bind/bind.hpp + using namespace boost::placeholders

The practice of declaring the Bind placeholders (_1, _2, …) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior. 提示w…