1樓:匿名使用者
檔案操作類 詳細
collectionparts = request.getparts();
string path = "";
string filename = "";
// 上傳單個檔案
if (parts.size() == 1)
java裡抽象類到底有什麼用?
2樓:bjjava小超
你明白多型就明白這個問題了,給你舉個例子吧:比如有個抽象類叫動物,他有「叫」的動作,繼承他的類都是普通類,有貓、狗...各種動物,他們實現叫的方法都不同。
現在有個需求:就是實現各種動物「叫」的動作,為了動態實現,就需要把動物做為形參傳過去,依照多型的特性「任何父類出現的地方,都可以替換成子類」,我們就可以將真正實現了「叫」這個方法的實現類傳過去而執行實現類裡的方法了,以下是例項**:
//動物類
public abstract class animal()//實現類:狗
public class dog extends animal()}//實現類:貓
public class cat extends animal()}//執行類
public class opration()}//測試類
public class test()
}希望能對你有幫助。
我這沒用任何工具,要是有錯誤,請見諒。
3樓:匿名使用者
比如說人和狗都屬於動物,這裡「動物」是抽象類,「人」和「狗」是「動物」的實體子類,動物都會「走路」,「走路」這個方法在「動物」類中沒有具體實現(抽象方法),因為不同的動物表現出來的「走路」方法是不同的,比如這個例子中,「人」是二條腿走路,「狗」是四條腿走路,所以這種具體差異就需要在子類中重寫,否則「人」和「狗」就沒區別了。
建議去系統的閱讀「java的多型性」,這些是基本概念。
4樓:匿名使用者
打個比方吧,我說電腦,電腦這就是個抽象名詞,電腦都能上網,能存東西。這時電腦就是抽象類了,而筆記本,台式就繼承它的基本功能,但它們實現功能方式不一樣,那就是類的方法重寫。抽象類意義:
便於程式的擴充套件和維護,也就是說原本只有一條路去某乙個地方,現在有了他你可以有n種方法去某乙個地方。
java中抽象類 具體是幹什麼 有什麼作用
5樓:匿名使用者
抽象類、就是乙個用abstract修飾的類,在這個類中、你可以定義一些不需要具體實現的方法、也就是沒有方法體的方法、這些方法叫做抽象方法、當乙個類要繼承這個抽象類時、就必須要實現這些抽象方法、。當你在做乙個比較複雜的專案時、一些簡單的方法就可以馬上寫出來、但一些複雜的方法、在不同的類中需要不同的實現、那麼這個時候就需要用到抽象類的。。。
java中抽象類的存在有什麼意義?
6樓:青松
java中抽象類更利於**的維
護和重用。
抽象類往往用來表徵對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。具體分析如下:
1.因為抽象類不能例項化物件,所以必須要有子類來實現它之後才能使用。這樣就可以把一些具有相同屬性和方法的元件進行抽象,這樣更有利於**和程式的維護。
比如本科和研究生可以抽象成學生,他們有相同的屬性和方法。這樣當你對其中某個類進行修改時會受到父類的限制,這樣就會提醒開發人員有些東西不能進行隨意修改,這樣可以對比較重要的東西進行統一的限制,也算是一種保護,對維護會有很大的幫助。
2.當又有乙個具有相似的元件產生時,只需要實現該抽象類就可以獲得該抽象類的那些屬性和方法。
比如學校又新產生了專科生這類學生,那麼專科生直接繼承學生,然後對自己特有的屬性和方法進行補充即可。這樣對於**的重用也是很好的體現。
所以,java中抽象類對於**的維護和重用有很好的幫助,也是java物件導向的乙個重要體現。
7樓:匿名使用者
抽象類將事物的共性的東西提取出來,抽象成乙個高層的類。子類由其繼承時,也擁有了這個超類的屬性和方法。---也就實現了**的復用了。
子類中也可加上自己所特有的屬性和方法。----也就實現了多型
假如有兩個程式設計師,兩個在兩個程式裡都要用到一種功能,比如要取乙個物件名。
甲自己做了乙個方法叫getname,乙也作了乙個方法叫qumingzi。如果兩個人要去看對方的程式,那麼這個方法要讀懂是不是要有乙個過程?
如果在公司裡,有個抽象類,離面有個抽象方法較getname,公司規定,凡遇到這樣的問題就實現這個方法。那麼這兩個人要讀對方的**是不是就容易了??
假如很多人要買水果吃,吃的動作只有乙個,但是有的人要用現金買,有的人用信用卡,有的人賒帳。要為每個人定義乙個類,就要定義多個相同的吃的方法。如果定義乙個抽象類,在裡面實現吃的方法,再做乙個買的抽象方法。
那每個人的類都從這個抽象類派生下來,只要實現買的方法即可,吃的方法就可以直接用父類的方法了。如果要改吃的方法就不用改多個,只要改這個抽象類裡的就行了。
8樓:譚加巧
相當於普通類和介面的綜合體,你可以在裡面定義實現了的方法和未實現需要繼承去實現的抽象方法。就相當於乙個存放了可以直接使用的物品和未使用的模具的容器。
9樓:匿名使用者
繼承除了可以復用已經實現的方法外,還有乙個很重要的作用:多型!
舉個例子,你有乙個方法,需要根據傳遞引數的不同,而返回不同的結果:
action(bird bird) //結果是飛action(man man) //結果是走action(fish fish) //結果是遊如果它們都繼承自乙個類animal,那麼這個方法只寫乙個就可以了:
action(animal animal) //根據多型,結果是子類的實現
java抽象類中的構造方法作用??如何理解?
10樓:
java抽象類的構造方法和普通類的構造方法一樣都是用來初始化類
只是抽象類的構造方法不能直接呼叫 因為抽象類不能實現例項但是一旦乙個普通類繼承了抽象類 便也可以在建構函式中呼叫其抽象類的建構函式
也可以使用其方法
可以這麼理解吧 抽象類就是乙個不能例項化的不同類不過如果方法加了abstract那麼就必須在子類裡面重寫了
11樓:喵喵的森林
建構函式是負責這個類物件的建立過程,也就是說它負責了建立這個階段的生命週期,如果說你這個類在建立的時候需要滿足什麼樣的業務規則,那麼這些規則的定義就應該在建構函式中。
1、java抽象類
2、對比介面
語法定義層
在abstract class方式中,demo可以有自己的資料成員,也可以有非abstract的成員方法,而在inte***ce方式的實現中,demo只能夠有靜態的不能被修改的資料成員(也就是必須是static final的,不過在inte***ce中一般不定義資料成員),所有的成員方法都是abstract的。
程式設計層面
abstract class在java語言中表示的是一種繼承關係,乙個類只能使用一次繼承關係。但是,乙個類卻可以實現多個inte***ce。
設計理念層面
abstract class在java語言中體現了一種繼承關係,要想使得繼承關係合理,父類和派生類之間必須存在"is a"關係,即父類和派生類在概念本質上應該是相同的。 對於inte***ce 來說則不然,並不要求inte***ce的實現者和inte***ce定義在概念本質上是一致的,僅僅是實現了inte***ce定義的契約(功能)而已。
12樓:匿名使用者
抽象類也是類,構造方法和普通構造方法沒什麼區別。
:)就好比人生一樣,乙個不完整的人生他也是人生呀,即使我和抽象類一樣沒法為社會做出貢獻,幹出一番轟轟烈烈的事業,但這並不妨礙我也有期待、夢想和自己的優點啊:)。
況且,我的這些優點是可以遺傳給兒子的,你敢保證那一代不出現偉人:)
13樓:匿名使用者
抽象類可以有構造方法,構造方法不可繼承,但是可以供子類用super()或者super(引數,引數。。。。)呼叫。
14樓:富國****
向下造型。類具體化。
在子類中super呼叫父類(抽象類)的構造方法。用來初始化子類物件。
15樓:匿名使用者
抽象類中的構造方法的作用,就是為他的子類提供預設的構造方法的實現。
主要應用是他的所有子類都有乙個相同功能的構造方法,寫在父類中是為了**復用
java中抽象類的作用是什麼?
16樓:匿名使用者
通過繼承它實現多型,後期繫結,可以為將來要實現的東西做好介面,實現重用性,
例如:abstract class a
class b extends a
}class c extends a
}public class test
public static void dosomething(a a)
}//這個例子只是抽象類的最基本的設計模式,和介面差不多
17樓:將軍抽大雞瓷
抽象模擬較像普通類和介面的結合,因為抽象類可以像普通類那樣在類中實現方法,也可以像介面一樣,只宣告,不實現。下面的乙個抽象類的例項:
public abstract class traveltool抽象類可以有抽象方法,如果它的子類是抽象類,那麼子類不必實現抽象類的抽象方法;如果子類不是抽象類,那麼子類必須實現抽象類的抽象方法。需要注意的是,不能例項化抽象類物件。若子類為非抽象類那麼子類可以例項化物件。
如果你還是不太明白抽象類。你可以上秒秒學了解下,上面說的比較形象。
18樓:暗影之王
在物件導向方法中,抽象類主要用來進行型別隱藏。構造出乙個固定的一組行為的抽象描述,但是這組行為卻能夠有任意個可能的具體實現方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實現則表現為所有可能的派生類。
模組可以操作乙個抽象體。由於模組依賴於乙個固定的抽象體,因此它可以是不允許修改的;
通過從這個抽象體派生,也可擴充套件此模組的行為功能。為了能夠實現物件導向設計的乙個最核心的原則ocp(open-closed principle),抽象類是其中的關鍵所在。
抽象類往往用來表徵對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。
19樓:匿名使用者
子類繼承抽象類後必須實現父類中的抽象方法。
如分頁 分頁父類basicpage 父類中有個addparameter的方法。如果你建乙個***page的話它繼承了basicpage ,那麼他必須加上addparameter的方法,否則報錯。
c抽象類和普通類的區別,java中抽象類和介面的區別?
1.c 沒有abstract.vc提供了乙個inte ce 2.抽象類就是指不能例項化的類,因為它們包含了純虛方法。3.虛函式是在申明的時候用了關鍵字virtual的類的 非靜態 成員函式 java中抽象類和介面的區別?抽象類是用來捕捉子類的通用特性的 它不能被例項化,只能被用作子類的超類。抽象類是...
java中抽象類可以繼承實體類嗎
抽象類可以繼承實體類,因為抽象類中不僅可以有抽象方法,也可以有非抽象方法,抽象類繼承了實體類則即包括自己的抽象方法也包括了繼承來的非抽象方法 1 抽象類只是乙個特殊的類,但是也具備類的特性。2 如果這個類中有抽象方法,那麼這個類必須定義為抽象類。3 如果這個抽象類繼承了別的抽象類,那麼可以不覆蓋抽象...
Java中抽象類和介面的區別,java中抽象類和介面的區別
簡單來說,介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,另外,實現介面的一定要實現介面裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。還有,介面可以實現多重繼承...