java基礎之抽象的概念(全網最詳細)

一.抽象的概念

如下圖所示:

?如上圖所示,一個父類為圖形,計算圖形的面積方法,那么就會有疑問,計算哪個圖形的面積呢?所以這個計算圖形的面積方法就稱為抽象方法;

二.抽象方法和抽象類的格式?

* 抽象方法:就是加上abstract關鍵字,然后去掉大括號,直接分號結束;
* 抽象類:抽象方法所在的類,必須是抽象類才行,再class之前寫上abstract即可;?

再demo11包中創建Animal類

代碼示例:

package cn.itcast.day09.demo11;
/*** @description:抽象方法* 抽象方法:就是加上abstract關鍵字,然后去掉大括號,直接分號結束;* 抽象類:抽象方法所在的類,必須是抽象類才行,再class之前寫上abstract即可;* @author: Admin* @create: 2023/12/11 16:36*/
public abstract class Animal {//這是一個抽象方法,代表吃東西,但是具體吃什么,不確定public abstract void eat();//這是普通的成員方法public void normalMethod(){}}

三.抽象方法和抽象類的使用

如何使用抽象類和抽象方法
* 1.不能直接創建new抽象類對象
* 2.必須用一個子類來繼承抽象父類
* 3.子類必須覆蓋重寫抽象父類當中所有的抽象方法覆蓋重寫(實現),子類去掉抽象方法的abstract關鍵字,然后補上方法體大括號
* 4.創建子類對象進行使用

?再demo11包下再新建一個Cat類

Cat類

package cn.itcast.day09.demo11;/*** @description* @author: Admin* @create: 2023/12/12 8:41*/
public class Cat extends Animal{//覆蓋重寫@Overridepublic void eat(){System.out.println("貓吃魚");}
}

再demo11包下創建一個DemoMain類(主類)

package cn.itcast.day09.demo11;
/*** @description* @author: Admin* @create: 2023/12/12 9:05*/
public class DemoMain {public static void main(String[] args){
//        Animal animal=new Animal();//錯誤寫法,不能直接創建抽象類對象Cat cat=new Cat();cat.eat();}}

?運行主類的結果:

?四.抽象方法和抽象類的注意事項

關于抽象類的使用,以下為語法上要注意的細節,雖然條目較多,但若理解了抽象的本質,無需死記硬背。
1. 抽象類 不能創建對象 ,如果創建,編譯無法通過而報錯。只能創建其非抽象子類的對象。
理解:假設創建了抽象類的對象,調用抽象的方法,而抽象方法沒有具體的方法體,沒有意義。
2. 抽象類中,可以有構造方法,是供子類創建對象時,初始化父類成員使用的。
理解:子類的構造方法中,有默認的 super() ,需要訪問父類構造方法。
3. 抽象類中,不一定包含抽象方法,但是有抽象方法的類必定是抽象類。
理解:未包含抽象方法的抽象類,目的就是不想讓調用者創建該類對象,通常用于某些特殊的類結構設計。
4. 抽象類的子類,必須重寫抽象父類中 所有的 抽象方法,否則,編譯無法通過而報錯。除非該子類也是抽象類。
理解:假設不重寫所有抽象方法,則類中可能包含抽象方法。那么創建對象后,調用抽象的方法,沒有意義。

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

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

相關文章

3、Kafka 線上集群部署方案怎么做?

文章目錄 1、操作系統的選擇1.1、I/O 模型的使用1.2、數據網絡傳輸效率1.3、社區支持度 2、磁盤的選擇3、磁盤容量的規劃3.1、舉例思考本問題:3.2、計算一下:3.3、規劃磁盤容量時你需要考慮下面這幾個元素: 4、帶寬規劃4.1、計算 總結 1、操作…

電商淘寶爬蟲API與淘寶官方開放平臺API的區別以及如何選擇適合自己的API接口

隨著數字化時代的到來,數據已經成為企業競爭力的重要因素。為了獲取數據,企業或個人常常需要使用API接口。常見的API接口包括爬蟲API和官方開放平臺API。本文將詳細介紹這兩種API接口的區別以及如何選擇適合自己的API接口。 一、爬蟲API與官方開放平臺A…

如何使用GaussDB創建外表(FOREIGN TABLE)

目錄 一、前言 二、創建外表的特點 二、GaussDB創建外表訪問外部數據庫表(示例) 1、創建外表 2、FAQ:CREATE USER MAPPING錯誤 三、GaussDB創建外表映射數據文件(示例) 1、創建數據文件 2、創建外表 3、FAQ&a…

Java之時間類2(JDK8新增)

一、Date類 &#xff08;一&#xff09;、ZoneId&#xff1a;時區 1、概述 ZoneId是Java 8中處理時區的類。它用于表示時區標識符&#xff0c;例如“America/New_York”或“Asia/Tokyo”。一共有600個時區。 2、常用方法: static Set<String> getAvailableZoneIds()獲…

C++基礎知識

目錄 前言&#xff1a; 命名空間 命名空間的定義 命名空間的使用 c輸入與輸出 缺省參數 函數重載 引用 引用的特性 常引用 引用的使用場景 引用做參數 引用做返回值 引用與指針的區別 內聯函數 內聯函數的特性 前言&#xff1a; C 語言是結構化和模塊化的語言&…

VS CODE 出錯 XHR failed

重新下載過去的版本&#xff0c;可能由于最近版本更新導致 Visual Studio Code September 2023

談談MYSQL主從復制原理

目錄 概述 要點binlog日志 主從復制過程 總結 概述 MySQL 主從復制是指數據可以從一個MySQL數據庫服務器主節點復制到一個或多個從節點。 MySQL 默認采用異步復制方式。從節點不用一直訪問主服務器來更新自己的數據&#xff0c;數據的更新可以在遠程連接上進行&#xff0…

Volatility3內存取證工具安裝及入門在Linux下的安裝教程

1-1. Volatility3簡介 Volatility 是一個完全開源的工具&#xff0c;用于從內存 (RAM) 樣本中提取數字工件。支持Windows&#xff0c;Linux&#xff0c;MaC&#xff0c;Android等多類型操作系統系統的內存取證。 針對競賽這塊&#xff08;CTF、技能大賽等&#xff09;基本上都…

websocket vue操作

let websocket: WebSocket; /** websocket測試 */ function connectWebsocket() {if (typeof WebSocket "undefined") {console.log("您的瀏覽器不支持WebSocket");return;}// let ip window.location.hostname ":8080";let ip "10.192…

瑞薩RZ/G2L核心板Linux Log目錄文件詳解

為了排除系統問題&#xff0c;監控系統健康狀況以及了解系統與應用程序的交互方式&#xff0c;我們需要了解各log文件的作用&#xff0c;以G2L中yocto文件系統為例&#xff0c;在系統/var/log/目錄下會存放記錄系統中各個部分的log文件作用如下&#xff1a; 1. 文件詳情 下圖…

Ubuntu系統部署Inis博客并使用內網穿透發布到公網隨時隨地遠程訪問

目錄 前言 推薦 1. Inis博客網站搭建 1.1. Inis博客網站下載和安裝 1.2 Inis博客網站測試 1.3 cpolar的安裝和注冊 2. 本地網頁發布 2.1 Cpolar臨時數據隧道 2.2 Cpolar穩定隧道&#xff08;云端設置&#xff09; 2.3.Cpolar穩定隧道&#xff08;本地設置&#xff09;…

鴻蒙原生應用/元服務開發-Stage模型能力接口(二)

ohos.app.ability.AbilityConstant (AbilityConstant)一、說明 AbilityConstant提供Ability相關的枚舉&#xff0c;包括設置初次啟動原因、上次退出原因、遷移結果、窗口類型等。本模塊首批接口從API version 9開始支持。后續版本的新增接口&#xff0c;采用上角標單獨標記接口…

matlab 最小二乘擬合平面(拉格朗日乘子法)

目錄 一、算法原理二、代碼實現三、結果展示本文由CSDN點云俠原創,原文鏈接。博客長期更新,爬蟲自重。 一、算法原理 設擬合出的平面方程為: a x + b y &#

Linux筆記之systemctl命令詳解

Linux筆記之systemctl命令詳解 code review! 文章目錄 Linux筆記之systemctl命令詳解systemctl restart docker 詳解 systemctl 是一個用于管理 systemd 服務的命令行工具。systemd 是一個用于啟動、停止和管理 Linux 系統中的進程的系統和服務管理器。下面是一些常見的 syst…

機器視覺系統選型-條形光源分類及應用場景

標準面光源 從平坦發光面照射漫射光 機械零件尺寸測量電子元件、IC的外形檢測邊緣缺陷檢測服裝紡織、食品包裝檢測 中孔面光源 從相機的同軸方向照射漫射光 金屬零件缺陷檢測金屬外殼檢測大面積電子元件的字符識別 平行面光源 照射平行度較高的漫射光玻璃瓶直徑測量螺釘牙輪…

Android studio 離線配置gradle

Gradle Distributions Gradle Distributions 查看gradle 文件夾下 gradle-wrapper.properties文件中的distributionUrl 版本號 然后在上邊網站下載對應需要的gradle對應版本 下載后復制到 gradle wrapper文件下&#xff0c;同時修改 distributionUrl 指向本地文件 然后同步就…

xtu oj 1233 Cycle Matrix

題目描述 給定N&#xff0c;輸出一個N*N的矩陣&#xff0c;矩陣為N層&#xff0c;每層是一個字符&#xff0c;從A到Z。 比如說N3,矩陣為 CCCCC CBBBC CBABC CBBBC CCCCC輸入 第一行是一個整數K&#xff08;K≤50&#xff09;,表示樣例數。 每個樣例占1行&#xff0c;為一個整…

647.回文子串

給你一個字符串 s &#xff0c;請你統計并返回這個字符串中 回文子串 的數目。 回文字符串 是正著讀和倒過來讀一樣的字符串。 子字符串 是字符串中的由連續字符組成的一個序列。 具有不同開始位置或結束位置的子串&#xff0c;即使是由相同的字符組成&#xff0c;也會被視作…

迷你型洗衣機好用嗎?口碑好的四款小型洗衣機推薦

隨著人們的生活水平的提升&#xff0c;越來越多小伙伴來開始追求更高的生活水平&#xff0c;一些智能化的小家電就被發明出來&#xff0c;而且內衣洗衣機是其中一個。現在通過內衣褲感染到細菌真的是越來越多&#xff0c;所以我們對內衣褲的清洗頻次會高于普通衣服&#xff0c;…

輕量封裝WebGPU渲染系統示例<47>- 多種光源(源碼)

當前示例源碼github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/MultiLightsShading.ts 當前示例運行效果: 此示例基于此渲染系統實現&#xff0c;當前示例TypeScript源碼如下: export class MultiLightsShading {private mRscene…