日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三次学JAVA再学不好就吃翔(part36)--抽象类

發布時間:2023/12/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三次学JAVA再学不好就吃翔(part36)--抽象类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考


文章目錄

    • 面向對象
      • 抽象類
        • 抽象類的概述
        • 抽象類的成員特點


面向對象


抽象類


抽象類的概述


  • 抽象類的概述
    • 抽象就是看不懂的
  • 抽象的特點
    • 抽象類和抽象方法必須用abstract關鍵字修飾
    • 抽象類不一定有抽象方法,但有抽象方法的類一定是抽象類或者接口
    • 抽象類不能實例化
    • 抽象類的子類要么是抽象類,要么重寫抽象類中的所有抽象方法。

  • 舉個例子1(抽象類)
class AbstractTest {public static void main(String[] args) {} }abstract class Animal { //抽象類public abstract void eat(); //抽象方法//當我們不知道這個方法是如何實現的就可以把它定義為抽象方法 }
  • 舉個例子2(抽象類不能被實例化)
class AbstractTest {public static void main(String[] args) {Animal a = new Animal();} }abstract class Animal { //抽象類}

報錯信息:

---------- javac ---------- AbstractTest.java:3: 錯誤: Animal是抽象的; 無法實例化Animal a = new Animal();^ 1 個錯誤Output completed (4 sec consumed) - Normal Termination
  • 舉個例子2(抽象類的子類,重寫抽象方法)
class AbstractTest {public static void main(String[] args) {Animal a = new Bunny(); //父類引用指向子類對象a.eat(); //編譯看左邊,運行看右邊} }abstract class Animal { //抽象類public abstract void eat();}class Bunny extends Animal {public void eat() {System.out.println("兔子吃提草");} }

輸出:

兔子吃提草
  • 舉個例子(抽象類的抽象子類,不重寫抽象方法)
class AbstractTest {public static void main(String[] args) {} }abstract class Animal { //抽象類public abstract void eat();}abstract class Bunny extends Animal {}

抽象類的成員特點


  • 抽象類的成員特點
    • 成員變量:既可以是變量也可以是常量
    • 存在構造方法,用于子類訪問父類數據的初始化
    • 成員方法:既可以是抽象的也可以是非抽象的
  • 抽象類的成員特性
    • 抽象方法:強制要求子類擁有該方法
    • 非抽象方法:子類繼承下來,提高代碼復用性

  • 舉個例子(成員變量)
class AbstractTest {public static void main(String[] args) {} }abstract class Animal { int num1 = 10;final int num2 = 20;}
  • 舉個例子(構造方法)
class AbstractTest {public static void main(String[] args) {Animal a = new Bunny();} }abstract class Animal { public abstract void eat();public Animal() {System.out.println("Animal 空參構造");}}class Bunny extends Animal {public void eat() {System.out.println("Bunny吃提草");}}

輸出:

Animal 空參構造
  • 舉個例子(抽象類成員特性)
class AbstractTest {public static void main(String[] args) {Animal a = new Bunny();a.eat();a.play();} }abstract class Animal { public abstract void eat();public void play() {System.out.println("動物玩");}}class Bunny extends Animal {public void eat() {System.out.println("Bunny吃提草");}}

輸出:

Bunny吃提草 動物玩

如果父類有抽象方法,那么子類必須要重寫,否則會報錯。對于父類的非抽象方法,我們可以拿來用,提高代碼復用性。

總結

以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part36)--抽象类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。