国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaSE】Java基礎(chǔ)語法(十六):抽象類

這篇具有很好參考價值的文章主要介紹了【JavaSE】Java基礎(chǔ)語法(十六):抽象類。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


【JavaSE】Java基礎(chǔ)語法(十六):抽象類

1. 抽象類的概述


【JavaSE】Java基礎(chǔ)語法(十六):抽象類

當(dāng)我們在做子類共性功能抽取時,有些方法在父類中并沒有具體的體現(xiàn),這個時候就需要抽象類了!
在Java中,一個沒有方法體的方法應(yīng)該定義為抽象方法,而類中如果有抽象方法,該類必須定義為抽
象類!


2. 抽象類的特點(diǎn)


  • 抽象類和抽象方法必須使用 abstract 關(guān)鍵字修飾
//抽象類的定義
public abstract class 類名 {}
//抽象方法的定義
public abstract void eat();
  • 抽象類中不一定有抽象方法,有抽象方法的類一定是抽象類
  • 抽象類不能實(shí)例化
  • 抽象類可以有構(gòu)造方法
  • 抽象類的子類
  • 要么重寫抽象類中的所有抽象方法
  • 要么是抽象類

3. 抽象類的實(shí)用價值

封裝共性功能:抽象類可以封裝多個子類共同擁有的功能,避免各自獨(dú)立實(shí)現(xiàn)重復(fù)的代碼。通過將共性行為定義在抽象類中,具體子類只需要實(shí)現(xiàn)自己的特殊邏輯即可,可以大大提高代碼的復(fù)用性。

規(guī)范行為:抽象類通過定義抽象方法,規(guī)范了子類的行為,強(qiáng)制子類必須實(shí)現(xiàn)相關(guān)方法,從而避免了因漏實(shí)現(xiàn)或?qū)崿F(xiàn)不當(dāng)帶來的問題;同時也增加了代碼的易讀性、易維護(hù)性。

反向控制:抽象類能夠?yàn)樽宇愄峁┗拘袨榭蚣?,在子類中調(diào)用父類定義的具體方法和屬性,以完成基本功能。子類通過繼承與擴(kuò)展的方式實(shí)現(xiàn)自己的特殊邏輯,這種反向控制能夠在大型工程中有效地管理代碼結(jié)構(gòu)和維護(hù)。

技術(shù)支持:在框架設(shè)計、系統(tǒng)維護(hù)以及代碼重構(gòu)等過程中,抽象類可以提供技術(shù)支持和規(guī)范,將大型工程的不同部分組合起來形成協(xié)調(diào)有序的整體,并且能夠保證不同部分之間的解耦和相互獨(dú)立性。


4. 抽象類的案例


案例需求
定義貓類(Cat)和狗類(Dog)
貓類成員方法:eat(貓吃魚)drink(喝水…)


實(shí)現(xiàn)步驟

  1. 貓類和狗類中存在共性內(nèi)容,應(yīng)向上抽取出一個動物類(Animal)
  2. 父類Animal中,無法將 eat 方法具體實(shí)現(xiàn)描述清楚,所以定義為抽象方法
  3. 抽象方法需要存活在抽象類中,將Animal定義為抽象類
  4. 讓 Cat 和 Dog 分別繼承 Animal,重寫eat方法
  5. 測試類中創(chuàng)建 Cat 和 Dog 對象,調(diào)用方法測試

代碼實(shí)現(xiàn)

動物類

public abstract class Animal {
	public void drink(){
		System.out.println("喝水");
	}
	
	public Animal(){
	}
	
	public abstract void eat();
}

貓類

public class Cat extends Animal {
	@Override
	public void eat() {
		System.out.println("貓吃魚");
	}
}

狗類

public class Dog extends Animal {
	@Override
	public void eat() {
		System.out.println("狗吃肉");
	}
}

測試類

public static void main(String[] args) {
	Dog d = new Dog();
	d.eat();
	d.drink();
	Cat c = new Cat();
	c.drink();
	c.eat();
	//Animal a = new Animal();
	//a.eat();
}

【JavaSE】Java基礎(chǔ)語法(十六):抽象類文章來源地址http://www.zghlxwxcb.cn/news/detail-468690.html

到了這里,關(guān)于【JavaSE】Java基礎(chǔ)語法(十六):抽象類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【JavaSE】Java基礎(chǔ)語法(二十五):異常

    【JavaSE】Java基礎(chǔ)語法(二十五):異常

    異常的概述 異常就是程序出現(xiàn)了不正常的情況 異常的體系結(jié)構(gòu) 編譯時異常 都是Exception類及其子類 必須顯示處理,否則程序就會發(fā)生錯誤,無法通過編譯 運(yùn)行時異常 都是RuntimeException類及其子類 無需顯示處理,也可以和編譯時異常一樣處理 圖示 如果程序出現(xiàn)了問題,我們

    2024年02月06日
    瀏覽(39)
  • 【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類

    【JavaSE】Java基礎(chǔ)語法(二十一):內(nèi)部類

    內(nèi)部類概念 在一個類中定義一個類。舉例:在一個類A的內(nèi)部定義一個類B,類B就被稱為內(nèi)部類 內(nèi)部類定義格式 格式舉例: 內(nèi)部類的訪問特點(diǎn) 內(nèi)部類可以直接訪問外部類的成員,包括私有 外部類要訪問內(nèi)部類的成員,必須創(chuàng)建對象 示例代碼: 成員內(nèi)部類的定義位置 在類中

    2024年02月07日
    瀏覽(32)
  • 【JavaSE】Java基礎(chǔ)語法(三十一):可變參數(shù)

    【JavaSE】Java基礎(chǔ)語法(三十一):可變參數(shù)

    可變參數(shù)介紹 可變參數(shù)又稱參數(shù)個數(shù)可變,用作方法的形參出現(xiàn),那么方法參數(shù)個數(shù)就是可變的了 方法的參數(shù)類型已經(jīng)確定,個數(shù)不確定,我們可以使用可變參數(shù) 可變參數(shù)定義格式 可變參數(shù)的注意事項 這里的變量其實(shí)是一個數(shù)組 如果一個方法有多個參數(shù),包含可變參數(shù),可

    2024年02月08日
    瀏覽(22)
  • 【JavaSE】Java基礎(chǔ)語法(三十二):Stream流

    【JavaSE】Java基礎(chǔ)語法(三十二):Stream流

    案例需求 按照下面的要求完成集合的創(chuàng)建和遍歷 創(chuàng)建一個集合,存儲多個字符串元素 把集合中所有以\\\"張\\\"開頭的元素存儲到一個新的集合 把\\\"張\\\"開頭的集合中的長度為3的元素存儲到一個新的集合 遍歷上一步得到的集合 原始方式示例代碼 使用Stream流示例代碼 Stream流的好處

    2024年02月07日
    瀏覽(31)
  • 【JavaSE】Java基礎(chǔ)語法(三十四):實(shí)現(xiàn)多線程

    【JavaSE】Java基礎(chǔ)語法(三十四):實(shí)現(xiàn)多線程

    是指從軟件或者硬件上實(shí)現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)。 具有多線程能力的計算機(jī)因有硬件支持而能夠在同一時間執(zhí)行多個線程,提升性能。 并行:在同一時刻,有多個指令在多個CPU上同時執(zhí)行。 并發(fā):在同一時刻,有多個指令在單個CPU上交替執(zhí)行。 進(jìn)程:是正在運(yùn)行的程序

    2024年02月08日
    瀏覽(21)
  • 【JavaSE】Java基礎(chǔ)語法(十三):Java 中的集合(十分全面)

    【JavaSE】Java基礎(chǔ)語法(十三):Java 中的集合(十分全面)

    List (對付順序的好幫?): 存儲的元素是有序的、可重復(fù)的。 Set (注重獨(dú)???的性質(zhì)): 存儲的元素是?序的、不可重復(fù)的。 Queue (實(shí)現(xiàn)排隊功能的叫號機(jī)): 按特定的排隊規(guī)則來確定先后順序,存儲的元素是有序的、可重復(fù)的。 Map (? key 來搜索的專家): 使?鍵值對(key-value)存

    2024年02月10日
    瀏覽(26)
  • 【JavaSE】Java基礎(chǔ)語法(三十三):File 一文詳解

    【JavaSE】Java基礎(chǔ)語法(三十三):File 一文詳解

    File類介紹 它是文件和目錄路徑名的抽象表示 文件和目錄是可以通過File封裝成對象的 對于File而言,其封裝的并不是一個真正存在的文件,僅僅是一個路徑名而已.它可以是存在的,也 可以是不存在的.將來是要通過具體的操作把這個路徑的內(nèi)容轉(zhuǎn)換為具體存在的 File類的構(gòu)造方法

    2024年02月06日
    瀏覽(39)
  • 初始Java篇(JavaSE基礎(chǔ)語法)(6)(繼承和多態(tài))(上)

    初始Java篇(JavaSE基礎(chǔ)語法)(6)(繼承和多態(tài))(上)

    ????????????????????????????????????????????????????????Java學(xué)習(xí)篇? 個人主頁(找往期文章包括但不限于本期文章中不懂的知識點(diǎn)):我要學(xué)編程(?_?)-CSDN博客 目錄 繼承篇? 為什么需要繼承? 繼承概念 繼承的語法 父類成員訪問 super 子類

    2024年04月15日
    瀏覽(25)
  • 初始Java篇(JavaSE基礎(chǔ)語法)(5)(類和對象(上))

    初始Java篇(JavaSE基礎(chǔ)語法)(5)(類和對象(上))

    個人主頁(找往期文章包括但不限于本期文章中不懂的知識點(diǎn)):我要學(xué)編程(?_?)-CSDN博客 目錄 面向?qū)ο蟮某醪秸J(rèn)知 面向?qū)ο笈c面向過程的區(qū)別 類的定義和使用? 類的定義格式 類的實(shí)例化 this引用 什么是this引用? this引用的特性 對象的構(gòu)造及初始化 如何初始化對象(的

    2024年04月08日
    瀏覽(25)
  • 【JavaSE】Java基礎(chǔ)語法(三十七):Java 中的 String 類(源碼級別)

    【JavaSE】Java基礎(chǔ)語法(三十七):Java 中的 String 類(源碼級別)

    String 表示 字符串類型,屬于 引用數(shù)據(jù)類型 。Java 中 String 是 不可變 的。 在 Java 當(dāng)中 雙引號 括起來的字符串,是直接存儲在“方法區(qū)”的“字符串常量池”當(dāng)中的。 源碼: 源碼: 源碼: 源碼: 源碼: 源碼: 源碼: 源碼: https://blog.csdn.net/qq_44715943/article/details/116308837

    2024年02月06日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包