• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        好程序員Java實(shí)用教程系列之對(duì)象的轉(zhuǎn)型

        好程序員Java今日分享實(shí)用的Java教程之對(duì)象的轉(zhuǎn)型

        成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、澄城網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、澄城網(wǎng)絡(luò)營(yíng)銷、澄城企業(yè)策劃、澄城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供澄城建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.jbt999.com

        體現(xiàn):

        1. 父類的引用可以指向子類的對(duì)象
        2. 接口的引用可以指向?qū)崿F(xiàn)類的對(duì)象

        轉(zhuǎn)型:

        1. 向上轉(zhuǎn)型
          1. 由子類類型轉(zhuǎn)型為父類類型,或者由實(shí)現(xiàn)類類型轉(zhuǎn)型為接口類型
          2. 向上轉(zhuǎn)型一定會(huì)成功,是一個(gè)隱式轉(zhuǎn)換
          3. 向上轉(zhuǎn)型后的對(duì)象,將只能訪問父類或者接口中的成員
        2. 向下轉(zhuǎn)型
          1. 由父類類型轉(zhuǎn)型為子類類型,或者由接口類型轉(zhuǎn)型為實(shí)現(xiàn)類類型
          2. 向下轉(zhuǎn)型可能會(huì)失敗,是一個(gè)顯式轉(zhuǎn)換
          3. 向下轉(zhuǎn)型后的對(duì)象,將可以訪問子類或者實(shí)現(xiàn)類中特有的成員
        instanceof關(guān)鍵字
        1. 針對(duì)于向下轉(zhuǎn)型的。

          1. 如果向下轉(zhuǎn)型不成功,會(huì)怎樣?

            1. 會(huì)有一個(gè)異常 ClassCastException
          2. 如何避免這種情況?

            1. 在向下轉(zhuǎn)型之前,我們先判斷一下這個(gè)對(duì)象是不是要轉(zhuǎn)型的類型

            2. 怎么判斷?

              1. 關(guān)鍵字 instanceof
              Animal animal = new Dog();
              if (animal instanceof Dog) {
                  // 說明animal的確是一個(gè)Dog
              }

        如果一個(gè)類中重寫了父類的某一個(gè)方法。此時(shí):

        1. 如果用這個(gè)類的對(duì)象來調(diào)用這個(gè)方法,最終執(zhí)行的是子類的實(shí)現(xiàn)。
        2. 如果用向上轉(zhuǎn)型后的對(duì)象來調(diào)用這個(gè)方法,執(zhí)行的依然是子類的實(shí)現(xiàn)。
          1. 因?yàn)橄蛏限D(zhuǎn)型后的對(duì)象,歸根到底還是子類對(duì)象。
        抽象類與抽象方法

        抽象:abstract

        抽象類:

        ? 用關(guān)鍵字abstract修飾的類,就是抽象類

        抽象方法:

        ? 用關(guān)鍵字abstract修飾的方法,就是抽象方法

        特點(diǎn):

        抽象方法:

        1. 抽象方法使用abstract來修飾,只有聲明,沒有實(shí)現(xiàn)。

          public abstract void bark();
          1. 抽象方法,只能夠?qū)懺诔橄箢愔小?/li>

        抽象類:

        1. 抽象類使用abstract來修飾,抽象類不能實(shí)例化對(duì)象。
        2. 抽象類中是可以寫非靜態(tài)的成員的,這時(shí)候這些非靜態(tài)成員是可以繼承給子類的。
        3. 抽象類中是可以包含構(gòu)造方法的。

        結(jié)合抽象類和抽象方法:

        1. 非抽象子類在繼承一個(gè)抽象父類的同時(shí),要實(shí)現(xiàn)父類中所有的抽象方法。

        注意事項(xiàng):

        final關(guān)鍵字

        1. 抽象類可以用final來修飾嗎?
          1. 不能!因?yàn)閒inal表示這個(gè)類無法被繼承。但是對(duì)于抽象類來說,如果無法被繼承,則這個(gè)抽象類沒有任何意義。
        2. 抽象方法可以用final修飾嗎?
          1. 不能!因?yàn)閒inal修飾的方法無法被重寫。但是抽象方法又只能寫在抽象類中。如果一個(gè)抽象方法用final來修飾了,此時(shí)這個(gè)方法將無法被非抽象子類重寫,那這個(gè)子類就會(huì)有問題。

        抽象類和抽象方法的實(shí)用場(chǎng)景:

        可以用抽象類和抽象方法來實(shí)現(xiàn)一些簡(jiǎn)單規(guī)則的制定。

        ? 例如:所有的快遞公司都必須要會(huì)xxxxx。KFC、麥當(dāng)勞、

        如果僅僅用抽象類和抽象方法來進(jìn)行規(guī)則指定、行為約束:

        ? 弊端:因?yàn)镴ava是單繼承的語言,如果一個(gè)類為了遵循某一種規(guī)范,而去繼承一個(gè)抽象類,此時(shí)這個(gè)類將無法再繼承其他類。

        ? 為了解決這樣的問題,我么可以使用接口進(jìn)行行為約束,規(guī)范代碼。

        接口

        關(guān)鍵字:interface

        語法:

        ? 和類是比較像的,但是他不是類

        [訪問權(quán)限修飾符] interface 接口名字 {
            // 接口中的成員
        }
        1. 訪問權(quán)限修飾符:和類一樣,只能有 public 和默認(rèn)的default權(quán)限。
        2. 接口不是類,不能實(shí)例化對(duì)象。
        3. 接口,暫時(shí)和類寫成平級(jí)的關(guān)系。
        4. 接口名字是一個(gè)標(biāo)識(shí)符,遵循大駝峰命名法

        接口中成員的定義:

        1. 屬性:接口中的屬性,默認(rèn)的修飾符是 public static final
        2. 構(gòu)造方法:接口中不能寫構(gòu)造方法
        3. 方法:
          1. 接口中的方法都是抽象方法
          2. 接口中的方法訪問權(quán)限修飾符都是public

        接口是需要被類來實(shí)現(xiàn)的。

        實(shí)現(xiàn)接口關(guān)鍵字: implements

        讓類實(shí)現(xiàn)接口:

        public class Shunfeng extends Company implements Express {
        
        }
        1. 一個(gè)非抽象類在實(shí)現(xiàn)接口后,需要實(shí)現(xiàn)接口中所有的抽象方法。

        2. 一個(gè)類在繼承自一個(gè)父類后,還可以再去實(shí)現(xiàn)接口。

          1. 如果同時(shí)有父類和接口,那么繼承父類在前,實(shí)現(xiàn)接口在后
        3. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口

          1. 如果一個(gè)類實(shí)現(xiàn)的多個(gè)接口中有相同的方法,這個(gè)方法在實(shí)現(xiàn)類中只需要實(shí)現(xiàn)一次即可。
        4. 接口之間是有繼承關(guān)系的,而且接口之間的繼承是多繼承。

          public interface GrilFriend extends HouseKeeping, Takecare {
          
          }

        新聞名稱:好程序員Java實(shí)用教程系列之對(duì)象的轉(zhuǎn)型
        當(dāng)前地址:http://www.jbt999.com/article16/pdjhdg.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、Google做網(wǎng)站、網(wǎng)站維護(hù)、定制開發(fā)、商城網(wǎng)站

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

        小程序開發(fā)

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            多人操穴视频在线播放 | 欧美黄片乱码 | 麻豆传媒换妻 | 家庭乱伦一级片 | 日本A一级片 | 欧美淫网激情 | 边打电话边操逼 | XA片一级日本 | 日本一极黄色 | 国产精品成人一区 |