abstract 關鍵字

閱讀時間約 2 分鐘
abstract method 一定要在 abstract class裡面
abstract class裡面不一定要有abstract method

使用時機

設計class時,知道該class應該要有哪些feature(method) 功能,但你還不確定確切該做什麼事情,或是這個功能之後會根據各種sub-class而有各自不同的實現。

abstract class Human{

public abstract void speak();

public void eat(){
System.out.println("Eat something~");
}
}

class Korean extends Human{

public void speak() {
System.out.println("Speak in Korean");
}
}

public class Demo {
public static void main(String[] args) {

Human korean = new Korean();
korean.speak(); // Speak in Korean

Human japanese = new Human() {

public void speak() {
System.out.println("Speak in Japanese");
}
};

japanese.speak(); // Speak in Japanese
}

上方程式部分

我定義了一個Human class

人類一定要吃,所以我明確寫了一個eat method

而這個人是哪一國人會說什麼語言?

這我不知道,所以寫上abstract關鍵字 - 第3行


方法一

定義一個Korean class extends Human 並重寫speak method - 第10~15行

方法二

使用anonymous inner class的方式,在new 物件的時候就直接重寫speak method - 第23~28行

anonymous inner class 只會建立使用一次性class,
不像class Korean可以在許多地方被重複使用(new 新的物件)。
當你確定這個class永遠不會在其他地方使用到的話,可以用這種方式速速創建並使用。
我的Java學習日記
留言0
查看全部
發表第一個留言支持創作者!
public: 可以在任何地方存取(access) private: 只能在同class中存取 default: 只能在同package中存取 protected: 只能在同package,以及它的子class存取。不能在不同package的非子class存取
Java不能同時多重繼承 但是可以多層繼承
表面上看似改變了,但底層記憶體中的值是沒有改變的。
每個method都有一個自己的stack Instance Variable 會存在heap中 Local Variable 會存在stack中
Switch陳述式在 Java 12 之前與之後的差別
WORA, Write Once Run Anywhere Java 不依賴於任何平台,Java可以在任何平台上執行,前提是那平台上要有安裝JVM Java的執行流程
public: 可以在任何地方存取(access) private: 只能在同class中存取 default: 只能在同package中存取 protected: 只能在同package,以及它的子class存取。不能在不同package的非子class存取
Java不能同時多重繼承 但是可以多層繼承
表面上看似改變了,但底層記憶體中的值是沒有改變的。
每個method都有一個自己的stack Instance Variable 會存在heap中 Local Variable 會存在stack中
Switch陳述式在 Java 12 之前與之後的差別
WORA, Write Once Run Anywhere Java 不依賴於任何平台,Java可以在任何平台上執行,前提是那平台上要有安裝JVM Java的執行流程
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
這幾天利用AI生成圖,玩得不亦樂乎。 今天生成的圖片,選擇的Style 是採用Abstract Curves ,這是一種抽象繪畫的技法,試著用AI 生成文,做一簡單的介紹。
Thumbnail
在 Kotlin 程式語言中,定義抽象類別需要在「class」關鍵字前面加上「abstract」關鍵字。在抽象類別內,若方法是抽象的,需在「fun」前面加上「abstract」。值得留意的是,抽象類別無法直接被實體化,只能被其他類別繼承並實作其中的抽象方法。
Thumbnail
AI seminar abstract: Effects of body plan evolution on the hydrodynamic drag and energy requirements of swimming in ichthyosaurs
abstract method 一定要在 abstract class裡面 abstract class裡面不一定要有abstract method
生活實驗 三九八      PLAY     按下去 一本書    再一本 一首歌    再一首 一句話    再一句 節奏有    就活了 停頓只    在節拍
我想起幼稚園到國小,爸媽規定晚上9點要上床睡覺,有幾次到了時間,我不想一個人去睡覺,想要媽媽陪我,那時候的我應該是感到有些不安全感,想要媽媽陪,可是媽媽總是斥責我怎麼不去睡覺,然後用責罵的方式打發我去睡覺。 我對小時候發生的事,記憶總是很少,但這幾次想要媽媽陪的心情,卻記得很清楚。長大後也想過,我為
Thumbnail
我們在前幾篇有介紹到介面的用途,都知道介面可以制定規格,建議可以先複習一下這一篇「【開發智能合約 — Solidity系列】實作篇Ep.10 — 標準化的介面(Interfaces)」,而這次來介紹一個非常抽象的概念,名為「抽象化合約」,果然如其名! 不太容易理解,這種合約跟介面非常相似,都可以用來
Thumbnail
  物件導向說到這邊其實修飾詞不只有之前所提的public、private這些,還有可能遇到抽象(abstract)、虛擬(virtual)、覆寫(override)、隱藏(new)、密封(sealed)、介面(interface)等等,我們就來看一下它們的差異吧~
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
這幾天利用AI生成圖,玩得不亦樂乎。 今天生成的圖片,選擇的Style 是採用Abstract Curves ,這是一種抽象繪畫的技法,試著用AI 生成文,做一簡單的介紹。
Thumbnail
在 Kotlin 程式語言中,定義抽象類別需要在「class」關鍵字前面加上「abstract」關鍵字。在抽象類別內,若方法是抽象的,需在「fun」前面加上「abstract」。值得留意的是,抽象類別無法直接被實體化,只能被其他類別繼承並實作其中的抽象方法。
Thumbnail
AI seminar abstract: Effects of body plan evolution on the hydrodynamic drag and energy requirements of swimming in ichthyosaurs
abstract method 一定要在 abstract class裡面 abstract class裡面不一定要有abstract method
生活實驗 三九八      PLAY     按下去 一本書    再一本 一首歌    再一首 一句話    再一句 節奏有    就活了 停頓只    在節拍
我想起幼稚園到國小,爸媽規定晚上9點要上床睡覺,有幾次到了時間,我不想一個人去睡覺,想要媽媽陪我,那時候的我應該是感到有些不安全感,想要媽媽陪,可是媽媽總是斥責我怎麼不去睡覺,然後用責罵的方式打發我去睡覺。 我對小時候發生的事,記憶總是很少,但這幾次想要媽媽陪的心情,卻記得很清楚。長大後也想過,我為
Thumbnail
我們在前幾篇有介紹到介面的用途,都知道介面可以制定規格,建議可以先複習一下這一篇「【開發智能合約 — Solidity系列】實作篇Ep.10 — 標準化的介面(Interfaces)」,而這次來介紹一個非常抽象的概念,名為「抽象化合約」,果然如其名! 不太容易理解,這種合約跟介面非常相似,都可以用來
Thumbnail
  物件導向說到這邊其實修飾詞不只有之前所提的public、private這些,還有可能遇到抽象(abstract)、虛擬(virtual)、覆寫(override)、隱藏(new)、密封(sealed)、介面(interface)等等,我們就來看一下它們的差異吧~