1樓:匿名使用者
我簡單描述下 就是表現出多種形態啊 哪幾種這種表述不是很恰當 拓展性好 具體實現就是父類的引用指向子類的物件。呼叫的時候呼叫子類的方法
2樓:匿名使用者
執行時多型和編譯時多型
什麼是多型性?java中的多型包含哪些型別?
3樓:猴饒艙
多型性:顧名思義就是擁有「多種形態」的含義,是指屬性或方法在子類中表現為多種形態。它包括兩種型別:
靜態多型性:包括變數的隱藏、方法的過載(指同一個類中,方法名相同[方便記憶],但是方法的引數型別、個數、次序不同,本質上是多個不同的方法);
動態多型性:是指子類在繼承父類(或實現介面)時重寫了父類(或介面)的方法,程式中用父類(或介面)引用去指向子類的具體例項,從**形式上看是父類(或介面)引用去呼叫父類(介面)的方法,但是在實際執行時,jvm能夠根據父類(或介面)引用所指的具體子類,去呼叫對應子類的方法,從而表現為不同子類物件有多種不同的形態。不過,程式**在編譯時還不能確定呼叫的哪一個類的方法,只有在執行時才能確定,故又稱為執行時的多型性。
java實現多型有幾種方式?分別是什麼?
4樓:天絕峰戀
首先,多型存在的三個必要條件
一、要有繼承;
二、要有重寫;
三、父類引用指向子類物件。
多型引用型別有兩種方式:
a. 編譯時多型:方法的過載;
b. 執行時多型:java執行時系統根據呼叫該方法的例項的型別來決定選擇呼叫哪個方法則被稱為執行時多型。(我們平時說得多的事執行時多型,所以多型主要也是指執行時多型);
5樓:匿名使用者
基本上是過載、介面、繼承 可通過這三種方式實現 多型
6樓:乖乖的不拽
多型的實現方式:
1、重寫
2、介面
3、抽象類和抽象方法
7樓:匿名使用者
三種:方法的過載,繼承或實現介面,父類引用指向子類物件
8樓:匿名使用者
條件:要有繼承,要有重寫,要有父類引用指向子類物件。有四種。
強制的:隱式做型別轉換,如1.0+1.
0、1.0+1、1.0+"1"等過載的:
相同的運算子或方法,去表示截然不同的意義。+在上面有多個意思:兩個double型的數相加、兩個串相連、整型相加,長整型等等。
引數的:為不同型別的引數提供相同的操作。例如抽象類中,描述了一組具有同樣特徵的物件,提供一個通用模板。
通過指定一種型別以重用抽象類。這些引數可以是使用者定義的很多型別,引數多型是最強大的多型。包含的:
類包含關係的抽象操作。如通過值的型別和集合的包含關係實現了多型的行為。
java中多型的四種形式是什麼
9樓:匿名使用者
三個含義:
1、子類都能以父類的身份出現
2、子類以父類的身份出現,但是做事情時,還是用自己的方式來實現3、子類以父類的身份出現時,自己特有的屬性和行為將不能使用
10樓:匿名使用者
繼承、過載、覆蓋、多型
11樓:匿名使用者
封裝,繼承,多型,過載?
java中多型具體是什麼???
12樓:drank傾城
首先表明觀點,過載
不是java多型的一種體現。
java的多型是指在程式執行過程中由虛擬機器確定到底該使用哪種形態完成指定行為的一個過程。如下:
parent p = new son();
p.speak();
如果在son中對父類speak()方法進行了重寫,那麼當你**寫到這裡時,編譯器是不知道要執行parent中的speak()還是son中的speak()方法的,編譯器只知道這樣寫不會發生語法錯誤;只有在執行過程中才會根據實際在記憶體中(堆)建立的物件去執行相應的方法
如果過載是多型,那我問你,當你在**中寫上某個過載的方法後,此時編譯器不是已經確定了到底是哪個方法在完成你的功能嗎?這僅僅是編譯期,程式還沒有執行呢。
我還看到一些關於多型的其他說法,比如:編譯時多型,執行時多型。而這種觀點普遍認為過載就是多型體現的一種,因為過載算是編譯時多型,而執行時多型中就是我上面寫的那個例子。
借用一句《java程式設計思想》作者bruce eckel的話:"不要犯傻,如果它不是晚繫結,它就不是多型"。這裡的晚繫結就是指動態繫結,早繫結就是指靜態繫結,也就是所謂的過載。
具體如何理解,網上關於這方面的討論一大堆,各位自行參考。
13樓:嗡嗡大佬
多型具體表現在重寫和過載,多型就是類的多種表現方式,比如同名不同參。
多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、**共享的優勢,很好的解決了應用程式函式同名問題。
首先說過載(overload),是發生在同一類中。與什麼父類子類、繼承毫無關係。標識一個函式除了函式名外,還有函式的引數(個數和型別)。
也就是說,一個類中可以有兩個或更多的函式,叫同一個名字而他們的引數不同。
再說重寫(override),是發生在子類中!也就是說必須有繼承的情況下才有重寫發生
14樓:逮夏趙靜
我只說我的理解和java程式設計經驗。
給你舉個例子,方法的多型。
比如你宣告2個方法。
public
void
method(string
str1)
public
void
method()
注意,2個方法名相同,但引數不同!!
你呼叫方法的時候直接呼叫,jdk會根據你的引數來決定走第一個方法還是第二個方法。
這就是多型。
15樓:況廣英洋綢
……多型,只要你瞭解過載的概念就很簡單。。()就假如你又一個函式add(整型引數1,整型引數2);
但是你有一個物件想實現同樣的功能,它不會再去構造一個函式,而是利用過載性質
add(物件型別1,物件型別2)。直接新增宣告就可以了這樣add函式就實現了多型性,當然不單單函式有多型性
16樓:糖糖寳寳
多型性是指允許不同類的物件對同一訊息作出響應,多型性包括引數化多型性和包含多型性,多型性語言具有靈活、抽象、行為共享、**共享的優勢,很好的解決了應用程式函式同名問題。
多型有兩種表現形式:過載和覆蓋
1、首先說過載(overload),是發生在同一類中,與什麼父類子類、繼承毫無關係。
標識一個函式除了函式名外,還有函式的引數(個數和型別),也就是說,一個類中可以有兩個或更多的函式,叫同一個名字而他們的引數不同。
他們之間毫無關係,是不同的函式,只是可能他們的功能類似,所以才命名一樣,增加可讀性,僅此而已!
2、再說覆蓋(override),是發生在子類中,也就是說必須有繼承的情況下才有覆蓋發生。
繼承一個類,也就有了父類了全部方法,如果你感到哪個方法不爽,功能要變,那就把那個函式在子類中重新實現一遍。
這樣再呼叫這個方法的時候,就是執行子類中的過程了,父類中的函式就被覆蓋了。
17樓:匿名使用者
將引數定義為一個父類,各子類中都重寫了父類的方法,在方法中用傳入的父類物件呼叫這個方法。當傳入什麼子類時就會呼叫相應的各子類的方法。這就是多型。
具體的例子**書上有很多就不列出來了
java中多型是什麼意思?
18樓:五年後的之後
多型(polymorphi**)按字面的意思就是「多種狀態」。在面嚮物件語言中,介面的多種不同的實現方式即為多型。引用charlie calverts對多型的描述——多型性是允許你將父物件設定成為一個或更多的他的子物件相等的技術,賦值之後,
父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作(摘自「delphi4 程式設計技術內幕」)。簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標。
多型性在object pascal和c++中都是通過虛擬函式實現的。
多型指同一個實體同時具有多種形式。它是物件導向程式設計(oop)的一個重要特徵。如果一個語言只支援類而不支援多型,只能說明它是基於物件的,而不是物件導向的。
c++中的多型性具體體現在執行和編譯兩個方面。
執行時多型是動態多型,其具體引用的物件在執行時才能確定。編譯時多型是靜態多型,在編譯時就可以確定物件使用的形式。
多型:同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。在執行時,可以通過指向基類的指標,來呼叫實現派生類中的方法。
c++中,實現多型有以下方法:虛擬函式,抽象類,覆蓋,模板(過載和多型無關)。
oc中的多型:不同物件對同一訊息的不同響應.子類可以重寫父類的方法
多型就是允許方法重名 引數或返回值可以是父型別傳入或返回。
19樓:匿名使用者
什麼是多型
物件導向的三大特性:封裝、繼承、多型。從一定角度來看,封裝和繼承幾乎都是為多型而準備的。這是我們最後一個概念,也是最重要的知識點。
多型的定義:指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。(傳送訊息就是函式呼叫)
實現多型的技術稱為:動態繫結(dynamic binding),是指在執行期間判斷所引用物件的實際型別,根據其實際的型別呼叫其相應的方法。
多型的作用:消除型別之間的耦合關係。
現實中,關於多型的例子不勝列舉。比方說按下 f1 鍵這個動作,如果當前在 flash 介面下彈出的就是 as 3 的幫助文件;如果當前在 word 下彈出的就是 word 幫助;在 windows 下彈出的就是 windows 幫助和支援。同一個事件發生在不同的物件上會產生不同的結果。
--------------------------
再簡單一點:坐公車時,一個男的靠在你的肩膀,你可能不爽,但是如果一個美女靠在你的肩膀你就很樂意,這就是多型的表現
20樓:樂樂
多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、**共享的優勢,很好的解決了應用程式函式同名問題。
多型有兩種表現形式:過載和覆蓋
首先說過載(overload),是發生在同一類中。與什麼父類子類、繼承毫無關係。
標識一個函式除了函式名外,還有函式的引數(個數和型別)。也就是說,一個類中可以有兩個或更多的函式,叫同一個名字而他們的引數不同。
他們之間毫無關係,是不同的函式,只是可能他們的功能類似,所以才命名一樣,增加可讀性,僅此而已!
再說覆蓋(override),是發生在子類中!也就是說必須有繼承的情況下才有覆蓋發生。
我們知道繼承一個類,也就有了父類了全部方法,如果你感到哪個方法不爽,功能要變,那就把那個函式在子類中重新實現一遍。
這樣再呼叫這個方法的時候,就是執行子類中的過程了。父類中的函式就被覆蓋了。(當然,覆蓋的時候函式名和引數要和父類中完全一樣,不然你的方法對父類中的方法就不起任何作用,因為兩者是兩個函式,毫不關係)
錢包有哪幾種,手鍊有哪幾種?
錢包根據其款bai式基本上可分du為中長款錢包 短款 錢包即裝錢的包包國際上比較出名的錢包有 lv 路易威登 金利來 萬內裡馬 leesizhe 裡思哲等容。英文 wallet,purse錢包 qi nb o錢包把錢和信用卡等貨幣工具收集到一起裝在一個小包內,便於隨身攜帶和使用,通常有巴掌大小。目前...
有哪幾種鏡片呀,黑色有哪幾種?
不知道你要的是什麼鏡片 太陽鏡是一種為防止太陽光強烈刺激造成對人眼傷害的視力保健用品,隨著人們物質文化水平的提高,太陽鏡又可作為美容或體現個人風格的特殊飾品。一般來說,配戴太陽眼鏡除了起時髦 擺酷之外,其實最重要的還是保護的作用。因此,瞭解太陽眼鏡鏡片的分類與功能可是很重要的喔!現在,就讓我們來認識...
紙箱的材質有哪幾種,紙箱有哪幾種材質?
紙箱材質分類具體如下。紙箱材質分類具體如下幾點 1 白板紙 白板紙是一種正面呈白色且光滑,背面多為灰底的紙板,這種紙板主要用於單面彩色印刷後製成紙盒供包裝使用,亦或者用於設計 手工製品。2 牛皮卡紙 牛皮卡紙,我國稱為箱板紙,是紙箱用紙的主要紙種之一。國產箱板紙分為優等品 一等品 合格品三個等級。牛...