最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java關(guān)鍵字abstract(抽象)實(shí)例詳解

 更新時(shí)間:2024年10月15日 12:18:50   作者:碼嘍的自我修養(yǎng)  
在Java中,抽象類是不能實(shí)例化的類,它通常作為其他子類的父類存在,并提供了一種繼承的框架,抽象類中可以包含抽象方法,這些方法沒有具體的實(shí)現(xiàn),必須由子類來(lái)提供,本文給大家介紹java關(guān)鍵字abstract(抽象)實(shí)例詳解,感興趣的朋友跟隨小編一起看看吧

抽象類與抽象方法概述

舉例1:

隨著繼承層次中一個(gè)個(gè)新子類的定義,類變得越來(lái)越具體,而父類則更一般,更通用。類的設(shè)計(jì)應(yīng)該保證父類和子類能夠共享特征。有時(shí)將一個(gè)父類設(shè)計(jì)得非常抽象,以至于它沒有具體的實(shí)例,這樣的類叫做抽象類。

舉例2:

我們聲明一些幾何圖形類:圓、矩形、三角形類等,發(fā)現(xiàn)這些類都有共同特征:求面積、求周長(zhǎng)。那么這些共同特征應(yīng)該抽取到一個(gè)共同父類:幾何圖形類中。但是這些方法在父類中又無(wú)法給出具體的實(shí)現(xiàn),而是應(yīng)該交給子類各自具體實(shí)現(xiàn)。那么父類在聲明這些方法時(shí),就只有方法簽名,沒有方法體,我們把沒有方法體的方法稱為抽象方法。Java語(yǔ)法規(guī)定,包含抽象方法的類必須是抽象類。

語(yǔ)法格式

  • 抽象類:被abstract修飾的類。
  • 抽象方法:被abstract修飾沒有方法體的方法。

抽象類的語(yǔ)法格式

[權(quán)限修飾符] abstract class 類名{
}
[權(quán)限修飾符] abstract class 類名 extends 父類{
}

抽象方法的語(yǔ)法格式

[其他修飾符] abstract 返回值類型 方法名([形參列表]);

注意:抽象方法沒有方法體

代碼舉例:

public abstract class Animal {
    public abstract void eat();
}
public class Cat extends Animal {
    public void eat (){
      	System.out.println("小貓吃魚和貓糧"); 
    }
}
public class CatTest {
 	 public static void main(String[] args) {
        // 創(chuàng)建子類對(duì)象
        Cat c = new Cat(); 
        // 調(diào)用eat方法
        c.eat();
  	}
}

此時(shí)的方法重寫,是子類對(duì)父類抽象方法的完成實(shí)現(xiàn),我們將這種方法重寫的操作,也叫做實(shí)現(xiàn)方法。

使用說明

1. 抽象類不能創(chuàng)建對(duì)象,如果創(chuàng)建,編譯無(wú)法通過而報(bào)錯(cuò)。只能創(chuàng)建其非抽象子類的對(duì)象。

理解:假設(shè)創(chuàng)建了抽象類的對(duì)象,調(diào)用抽象的方法,而抽象方法沒有具體的方法體,沒有意義。

抽象類是用來(lái)被繼承的,抽象類的子類必須重寫父類的抽象方法,并提供方法體。若沒有重寫全部的抽象方法,仍為抽象類。

2. 抽象類中,也有構(gòu)造方法,是供子類創(chuàng)建對(duì)象時(shí),初始化父類成員變量使用的。

理解:子類的構(gòu)造方法中,有默認(rèn)的super()或手動(dòng)的super(實(shí)參列表),需要訪問父類構(gòu)造方法。

3. 抽象類中,不一定包含抽象方法,但是有抽象方法的類必定是抽象類。

理解:未包含抽象方法的抽象類,目的就是不想讓調(diào)用者創(chuàng)建該類對(duì)象,通常用于某些特殊的類結(jié)構(gòu)設(shè)計(jì)。

4. 抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則,編譯無(wú)法通過而報(bào)錯(cuò)。除非該子類也是抽象類。

理解:假設(shè)不重寫所有抽象方法,則類中可能包含抽象方法。那么創(chuàng)建對(duì)象后,調(diào)用抽象的方法,沒有意義。

注意事項(xiàng)

  • 不能用abstract修飾變量、代碼塊、構(gòu)造器;
  • 不能用abstract修飾私有方法、靜態(tài)方法、final的方法、final的類。

到此這篇關(guān)于java關(guān)鍵字abstract(抽象)詳解的文章就介紹到這了,更多相關(guān)java關(guān)鍵字abstract內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

仁布县| 宁南县| 西乌珠穆沁旗| 东丰县| 永定县| 隆安县| 龙里县| 高台县| 白银市| 卢龙县| 武功县| 湄潭县| 东至县| 南开区| 凤山县| 永州市| 隆化县| 驻马店市| 孙吴县| 玛纳斯县| 延边| 广安市| 台安县| 射洪县| 鄂托克前旗| 宁德市| 沐川县| 乌拉特后旗| 且末县| 木兰县| 潮州市| 富源县| 东港市| 宁海县| 乐昌市| 山东| 巴彦淖尔市| 泸溪县| 禄劝| 鸡泽县| 乌拉特中旗|