亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java關鍵字abstract(抽象)實例詳解

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

抽象類與抽象方法概述

舉例1:

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

舉例2:

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

語法格式

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

抽象類的語法格式

[權限修飾符] abstract class 類名{
}
[權限修飾符] abstract class 類名 extends 父類{
}

抽象方法的語法格式

[其他修飾符] 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)建子類對象
        Cat c = new Cat(); 
        // 調用eat方法
        c.eat();
  	}
}

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

使用說明

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

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

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

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

理解:子類的構造方法中,有默認的super()或手動的super(實參列表),需要訪問父類構造方法。

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

理解:未包含抽象方法的抽象類,目的就是不想讓調用者創(chuàng)建該類對象,通常用于某些特殊的類結構設計。

4. 抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則,編譯無法通過而報錯。除非該子類也是抽象類。

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

注意事項

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

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

相關文章

  • SpringSecurity?表單登錄的實現(xiàn)

    SpringSecurity?表單登錄的實現(xiàn)

    本文主要介紹了SpringSecurity?表單登錄的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 詳解Java實現(xiàn)多線程的三種方式

    詳解Java實現(xiàn)多線程的三種方式

    線程(英語:thread)是操作系統(tǒng)能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。本文總結了Java多線程是三種實現(xiàn)方式,需要的可以參考一下
    2022-03-03
  • java實現(xiàn)上傳文件到服務器和客戶端

    java實現(xiàn)上傳文件到服務器和客戶端

    這篇文章主要為大家詳細介紹了java實現(xiàn)上傳文件到服務器和客戶端,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Centos中安裝jdk案例講解

    Centos中安裝jdk案例講解

    這篇文章主要介紹了Centos中安裝jdk案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • springboot 自定義配置Boolean屬性不生效的解決

    springboot 自定義配置Boolean屬性不生效的解決

    這篇文章主要介紹了springboot 自定義配置Boolean屬性不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java算法之位圖的概念和實現(xiàn)詳解

    Java算法之位圖的概念和實現(xiàn)詳解

    這篇文章主要介紹了Java算法之位圖的概念和實現(xiàn)詳解,位圖可以利用每一位來對應一個值,比如可以利用int類型的數(shù)去存儲0~31這個集合的數(shù)字,如果該集合內的數(shù)字存在,則把對應的位設置位1默認為0,需要的朋友可以參考下
    2023-10-10
  • Java多線程之Callable接口的實現(xiàn)

    Java多線程之Callable接口的實現(xiàn)

    這篇文章主要介紹了Java多線程之Callable接口的實現(xiàn),Callable和Runnbale一樣代表著任務,區(qū)別在于Callable有返回值并且可以拋出異常。感興趣的小伙伴們可以參考一下
    2018-08-08
  • 關于Java中攔截mybatis并輸出完整sql語句的方法

    關于Java中攔截mybatis并輸出完整sql語句的方法

    這篇文章主要介紹了關于Java中攔截mybatis并輸出完整sql語句的方法,假如項目中有很多很多的SQL我們不可能一一的去修改解決。這個時候我們就需要通過mybatis攔截SQL并且最終修改SQL,需要的朋友可以參考下
    2023-08-08
  • RocketMQ?Namesrv架構工作原理詳解

    RocketMQ?Namesrv架構工作原理詳解

    這篇文章主要為大家介紹了RocketMQ?Namesrv架構工作原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • SpringBoot+mail 輕松實現(xiàn)各類郵件自動推送

    SpringBoot+mail 輕松實現(xiàn)各類郵件自動推送

    在實際的項目開發(fā)過程中,經(jīng)常需要用到郵件通知功能,例如,通過郵箱注冊,郵箱找回密碼,郵箱推送報表等等,實際的應用場景非常的多,今天通過這篇文章,我們一起來學習如何在 Spring Boot 中快速實現(xiàn)一個自動發(fā)送郵件的功能
    2024-07-07

最新評論