1樓:月光馨語
總的來說:編譯時看父類,執行時看子類。
繼承,子類繼承父類中所以的屬性和方法,但是對於private的屬相和方法,由於這個是父類的隱私,所以子類雖然是繼承了,但是沒有可以訪問這些屬性和方法的引用,所以相當於沒有繼承到。很多時候,可以理解為,沒有繼承。
多型:就是父類引用可以持有子類物件。這時候只能呼叫父類中的方法,而子類中特有方法是無法訪問的,因為這個時候(編譯時)你把他看作父類物件的原因,但是到了執行的時候,編譯器就會發現這個父類引用中原來是乙個子類的對像,所以如果父類和子類中有相同的方法時,呼叫的會是子類中的方法,而不是父類的。
c++裡的類的繼承和多型與java裡的繼承和多型的區別是?
2樓:匿名使用者
java和c++都是物件導向語言。也就是說,它們都能夠實現物件導向思想(封裝,繼承,多型)。而由於c++為了照顧大量的c語言使用者, 而相容了c,使得自身僅僅成為了帶類的c語言,多多少少影響了其物件導向的徹底性!
java則是完全的物件導向語言,它句法更清晰,規模更小,更易學。它是在對多種程式語言進行了深入細緻研究的基礎上,據棄了其他語言的不足之處,從根本上解決了c++的固有缺陷。 java和c++的相似之處多於不同之處,但兩種語言問幾處主要的不同使得java更容易學習,並且程式設計環境更為簡單。
我在這裡不能完全列出不同之處,僅列出比較顯著的區別:
1.繼承:
c++支援多重繼承,這是c++的乙個特徵,它允許多父類派生乙個類。儘管多重繼承功能很強,但使用複雜,而且會引起許多麻煩,編譯程式實現它也很不容易。
java不支援多繼承,而有可能某個類或物件使用分別在幾個類或物件裡面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,介面有更高的靈活性,因為介面中沒有任何實現的**。乙個類可以實現多個介面。
2.多型:
c++中多型更容易理解的概念為:允許父類指標或名稱來引用子類物件,或物件方法,而實際呼叫的方法為物件的類型別方法
java中多型是方法的重寫overriding和過載overloading是多型性的不同表現。重寫overriding是父類與子類之間多型性的一種表現,過載overloading是乙個類中多型性的一種表現。
3.指標:
java語言讓程式設計者無法找到指標來直接訪問記憶體無指標,並且增添了自動的記憶體管理功能,從而有效地防止了c/c++語言中指標操作失誤,如野指標所造成的系統崩潰。但也不是說java沒有指標,虛擬機器內部還是使用了指標,只是外人不得使用而已。這有利於java程式的安全。
關於java中繼承和多型的關係?
3樓:曹曉山
繼承,子類繼承父類中所以的屬性和方法,但是對於private的屬相和方法,由於這個是父類的隱私,所以子類雖然是繼承了,但是沒有可以訪問這些屬性和方法的引用,所以相當於沒有繼承到。很多時候,可以理解為,沒有繼承。
多型:就是父類引用可以持有子類物件。這時候只能呼叫父類中的方法,而子類中特有方法是無法訪問的,因為這個時候(編譯時)你把他看作父類物件的原因,但是到了執行的時候,編譯器就會發現這個父類引用中原來是乙個子類的對像,所以如果父類和子類中有相同的方法時,呼叫的會是子類中的方法,而不是父類的。
在java中也可以這麼說:編譯時看父類,執行時看子類。
4樓:匿名使用者
第乙個問題是純概念性的,baidu下繼承,多型,只是個概念,不理解作用也不大
第二個aa,ab,ac繼承a
那麼就有a a=new aa(),a a=new ab(),a a=new ac()就是所說的父類引用指向子類物件,因為程式裡有時候需要根據實際運**況、引數決定去指向哪乙個具體的子類(程式設計師並不能知道執行時使用者具體的選擇),由子類裡重寫的方法去執行處理過程。比如a類是父類,有函式print(),aa裡重寫print(),輸出了aa,ab裡重寫print(),輸出了ab,ac裡重寫print(),輸出了ac,這裡可能要了解下mvc模式,前面這樣的a,aa,ab,ac可能就是m層,然後編寫c層**是會根據v層傳回的引數決定a a=new a*,也就是父類引用a具體指向哪個子類的物件,然後呼叫a的print()去執行處理,將結果傳回給v層去顯示。可能你有疑問是幹嗎要用繼承,我直接根據傳回的引數是哪個,就例項化哪個子類就執行哪個子類的方法就行了,不需要用父類引用指向子類物件這樣的方法。
但是實際情況是,在c層裡物件是傳遞的,可能例項化是在這個類裡,呼叫就跑到另乙個類裡面去了,例項化的類知道a是aa,還是ab,還是ac,但是呼叫的類呢,這時候呼叫的類就不需要關心是哪個了,因為知道a是a的引用,有個print()是需要呼叫的就行了。這個可能解釋的有點亂,等你了解mvc時結合一下就可以發現區別了
5樓:禮貌小蝸牛
假如:乙個修車工修車,我們建立修車工的例項,這個時候就可以修車了,由於不可能讓他修一種牌子的車,所以我們傳參的時候傳父類,但是每種車可能構建不同,一樣的毛病,一樣的修,但就是不同的,是吧?這個時候在程式中執行的時候而不是編譯的時候執行方法,java動態繫結,也就是把你拉進來的車的修車實現,給我們修車工,這樣修車工人就知道用傳進來的車物件的方法進行修車了,但前提是必須都是extends(拓展)了,車類。
額...時間有限,如果覺得回答不夠準確,當我路過。
-------另建議你多看下書,哪怕你實在牛得不行的時候,多看看,沒壞處
java語言中繼承的特點是什麼?多型有什麼好處?
6樓:匿名使用者
物件導向程式設計有三大特點:
1、繼承
2、多型:方法的覆蓋(方法的重寫overriding)、方法的過載(overload)
3、封裝一.繼承 繼承就是子類對父類的繼承.包含父類的方法,還可以新增自己獨有的方法。
二.多型 方法名稱允許相同,但根據傳入引數的型別,個數不同形成多型的形式. 方法覆蓋要滿足5個條件:
(方法覆蓋:存在繼承關係)
1、方法名稱一致
2、引數一致
3、返回值一致
4、方法的許可權不能比父類的小
5、不能比父類丟擲更多的異常
7樓:匿名使用者
繼承是一種描述共性的方式,子類繼承父類,從而擁有父類的屬性和方法。多型有兩種,一種是子類具有同父類相同名稱,相同引數的方法,這樣子類的方法會覆蓋父類的方法,稱為方法的重寫。一種是同乙個類裡具有相同名稱,不同引數的方法,稱為類的重用。
使用多型能使**具備可替換性、靈活性、可擴充性、介面性、簡化性等優點。
8樓:匿名使用者
繼承 就是我的類 你繼承過去 然後你可以用我類裡的方法我不能用你的方法 你可以再寫方法
多型的好處很多 最明顯的是 讓具體實現的類隱藏 例項化的時候不需要具體的類 只需要介面即可
為什麼要使用java的繼承與多型?使用java的繼承與多型的好處是什麼?
9樓:白智竹辛
多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、**共享的優勢,很好的解決了應用程式函式同名問題。
多型的表現形式有過載和覆蓋兩種形式。
過載(overload),是發生在同一類中。與什麼父類子類、繼承毫無關係。
標識乙個函式除了函式名外,還有函式的引數(個數和型別)。也就是說,乙個類中可以有兩個或更多的函式,叫同乙個名字而他們的引數不同。
他們之間毫無關係,是不同的函式,只是可能他們的功能類似,所以才命名一樣,增加可讀性,僅此而已!
再說覆蓋(override),是發生在子類中!也就是說必須有繼承的情況下才有覆蓋發生。
我們知道繼承乙個類,也就有了父類了全部方法,如果你感到哪個方法不爽,功能要變,那就把那個函式在子類中重新實現一遍。
這樣再呼叫這個方法的時候,就是執行子類中的過程了。父類中的函式就被覆蓋了。(當然,覆蓋的時候函式名和引數要和父類中完全一樣,不然你的方法對父類中的方法就不起任何作用,因為兩者是兩個函式,毫不關係)
在java中
高內聚,低耦合。
繼承就可以降低**的耦合,這樣編寫**,在你以後修改一處時,就不會牽扯很多的累,方便以後的修改和公升級。僅供才考,還是希望你多理解。希望對你有幫助。
10樓:僪遠姚夏
多型在java程式設計中是很常用的,在編寫多型方法時
所有過載的
方法所執行的目的是相同的,但是它們的引數有可能不同,比如說:你要求面積,但是你是如果是求圓的面積的話就要知道它的半徑,只需知道乙個引數,但是求矩形面積的話,就要知道長和寬這兩個引數,所以說多型還是比較常用的方法。同時多型在以後系統的維護中也是很重要的~~
11樓:侯潔玄棋
java的繼承和多型是java語言物件導向程式設計的一大特色。繼承,實現了類的重用,這樣子可以減少程式設計師的工作量,而且利用這一特點,可以規範語言的關聯結構層次,使得**更加整齊,層次更加分明。多型這一特點很好的解決了程式函式同名的問題,如:
同乙個加法函式方法,引數的個數不一樣,利用多型便可以根據引數列表呼叫需要的方法。
12樓:上官淑珍靖溪
繼承和多型java的幾大特性之一
繼承:多個類中具有相同的屬性,就可以把那些相同的屬性提取出來做為父類,其他那些類繼承父類,子類將會擁有你類的所有的非私有的屬性和辦法,這樣即可以減少**的冗餘,又增強了**的可讀性和健壯性多型:
多型:靜態的多型是辦法過載,動態的多型為子類重寫父類的辦法,如果你的某乙個操作具有不同的行為動作,就可以使用多型,這樣將能避免在同乙個辦法中使用大量if()else()語句進行判斷,而且大大的增強的程式的健壯性:
13樓:牟金蘭問鸞
繼承和多型是物件導向的幾大特性之一
繼承:如果你的多個類中具有相同的屬性,就可以把那些相同的屬性提取出來做為父類,其他那些類繼承父類,子類將會擁有你類的所有的非私有的屬性和方法,這樣即可以減少**的冗餘,又增強了**的可讀性和健壯性
多型:多型分為靜態的多型和動態的多型,靜態的多型是方法過載,動態的多型為子類重寫父類的方法,如果你的某乙個操作具有不同的行為動作,就可以使用多型,這樣將能避免在同乙個方法中使用大量if()else()語句進行判斷,而且大大的增強的程式的健壯性
JAVA換行符t和t的區別,JAVA裡的空白tnrbp分別代表什麼?
t不是換行符,是製表符 t不用在字串中會出錯。所以沒有 t只有 t t 是乙個大空格.t是報錯 java裡的空白 t n r b p分別代表什麼?1 只有前面三個,表示轉義符 1.1 t表示tab鍵按一下,n表示回車換行 r 表示回車到當前行行首 1.2 對應的 1.3 r 回車,回到當前行的行首,...
c抽象類和普通類的區別,java中抽象類和介面的區別?
1.c 沒有abstract.vc提供了乙個inte ce 2.抽象類就是指不能例項化的類,因為它們包含了純虛方法。3.虛函式是在申明的時候用了關鍵字virtual的類的 非靜態 成員函式 java中抽象類和介面的區別?抽象類是用來捕捉子類的通用特性的 它不能被例項化,只能被用作子類的超類。抽象類是...
java值傳遞和引用傳遞的區別java核心卷
1.基本型別和引用型別在記憶體中的儲存 java中資料型別分為兩大類,基本型別和物件型別。相應的,變數也有兩種型別 基本型別和引用型別。基本型別的變數儲存原始值,即它代表的值就是數值本身 而引用型別的變數儲存引用值,引用值 指向記憶體空間的位址,代表了某個物件的引用,而不是物件本身,物件本身存放在這...