第二十八 Java物件導向之抽象類

2021-07-29 07:11:36 字數 1762 閱讀 9404

1. 動物類的shout方法描述的不正確。

2. 沒有強制要子類一定要重寫shout方法。

我們在描述一類事物的時候,發現該種事物確實存在著某種行為,但是這種行為目前是不具體的,那麼我們可以抽取這種行為 的宣告,但是不去實現該種行為,這時候這種行為我們稱作為抽象的行為,我們就需要使用抽象類。

抽象類的好處: 強制要求子類一定要實現指定的方法。

有顏色屬性和叫的方法

有顏色屬性和叫的方法

1)顏色的屬性可以使用預設初始化值。

2)叫的方法在父類中如何定義?

1》狗是旺旺

2》鳥是嘰嘰喳喳

3》可以將父類的方法定義為狗叫讓鳥繼承父類重寫叫的方法

***   鳥怎麼確定是否要重寫父類方法。

***   不重寫,編譯和執行都沒有問題,只是執行鳥叫的方法就會出現狗叫

4》父類的方法很難確定。

class animal 

}class dog extends animal

}class bird extends animal

}

1:當描述乙個類的時候,如果不能確定功能函式如何定義,那麼該類就可以定義為抽象類,功能函式應該描述為抽象函式。

1)定義叫的方法,無法確定方法體,不寫方法體

2)publicvoid shout(); 編譯失敗

1)編譯失敗,有新的提示

1)編譯通過

abstract class animal 

class dog extends animal

}class bird extends animal

}

1:有抽象函式的類,該類一定是抽象類。

2:抽象類中不一定要有抽象函式。

3:抽象類不能使用new建立物件

1)建立物件,使用物件的功能,抽象類的方法,沒有方法體。

4:抽象類主要為了提高**的復用性,讓子類繼承來使用。

5:編譯器強制子類實現抽象類父類的未實現的方法。

1)可以不實現,前提是子類的也要宣告為抽象的。

1:提高**復用性

強制子類實現父類中沒有實現的功能

2:提高**的擴充套件性,便於後期的**維護

1:抽象類中一定有建構函式。主要為了初始化抽象類中的屬性。通常由子類實現。

一定不能同時修飾。

abstract class animal 

animal(string name)

abstract void shout();

}class dog extends animal

dog(string name)

void shout()

}class myclass

}

final與abstract不能共存:

final:它的作用  修飾類代表不可以繼承  修飾方法不可重寫

abstract修飾類就是用來被繼承的,修飾方法就是用來被重寫的。

static 修飾的方法可以用類名呼叫,

對於abstract修飾的方法沒有具體的方法實現,所有不能直接呼叫,也就是說不可以與static共存。

private

private修飾的只能在本類中使用,abstract方法是用來被子類進行重寫的,有矛盾, 所以不能共存.

第二十八天

1 建立乙個名稱為itcast的資料庫。create database itcast 2 設計資料表tb student的字段結構,欄位有id 學號 name 姓名 age 年齡 enrolmentdate 入學時間 並選擇適合的資料型別。tb student資料表的字段結構如下表所示 欄位名 型別...

蛻變,第二十八天

1 什麼是包 包是模組的一種形式,包的本質就是乙個含有 init py檔案的資料夾 2.為什麼要有包 因為如果我們要把我們寫的一大堆功能分類處理,並且數量眾多,我們需要進行分檔案儲存,則需要用到包的概念 3 如何用包 匯入包就是在包下的 init py import from import 注意的問...

冥想第二十八天

今天5點多就不困了,天氣有點冷,醒了。告訴自己,都是正常的。確實是正常的。都是人最直觀的感受。改變固有思維,以前會聯想很多造成的,讓自己越來越膽小。可這一切都是那麼的正常。固定的生物鐘也改起了。一切放輕鬆。不怪以前的自己,畢竟自己一天比一天好。多學習別人身上的優點,不狹隘。不能因為環境冷了,而埋怨自...