細說C 覆蓋方法和過載方法

2021-06-22 07:15:14 字數 816 閱讀 5736

很多初學者朋友可能都傻傻分不清覆蓋方法和過載方法的區別是什麼,那麼小雨今天就以例項來給朋友們講解一下。

首先說覆蓋方法,讓我們看下面的例子:

class animal

class pig : animal

class bird : animal

void animal :: move()

void pig :: move()

void bird :: move()

相信各位看完這個程式就明白的差不多了,我們宣告animal這個類,子類pig和bird都繼承自animal類,豬和鳥動的方式自然不同,所以要對父類方法進行覆蓋,首先在子類中將要覆蓋的方法再宣告一次,再實現一次,這就是方法覆蓋。

而過載方法則不同,我們對上面的例子中的父類做一下修改:

class animal

void animal :: move()

void animal :: move(int movcount)

上述就是方法過載,

即同乙個函式名,

引數不同,

實現不同的功能,move(int movcount)可

以顯示出移動的距離。

那我們現在來做總結: ·

方法覆蓋要求引數簽名必須一致,而方法過載要求引數簽名必須不一致。 ·

方法覆蓋要求返回型別必須一致,而方法過載對此不做限制。

謝謝!

C 覆蓋方法和過載方法

覆蓋方法 overriding 在 c 裡,當我們需要在基類裡提供乙個通用的函式,但是在它的某個子類裡,需要修改這個方法的實現,就要用到覆蓋。覆蓋是存在類中,子類覆蓋是從基類繼承過來的方法 函式 但是函式名 返回值 引數列表都必須和基類的方法相同。c 可以讓我們很容易實現這種既有共同特徵又需要在不同...

覆蓋方法和過載方法

覆蓋方法 通過之前的學習,我們已經知道了如何通過建立新的子類來重用現有的 繼承 雖然這個方案可以讓我們輕鬆解決許多現實世界裡的問題,但在某些場合,卻又顯得不夠用。例如當我們需要在基類裡提供乙個通用的函式,但在它的某個子類裡需要修改這個方法的實現,在 c 裡,覆蓋 overriding 就可以做到。回...

方法覆蓋和方法過載

0 最根本的區別是,方法的過載是不同的方法叫了同樣的名字,而方法的覆蓋是同乙個方法在子類和父類之間的多型表現。1 方法的覆蓋是子類和父類之間的關係,是垂直關係 方法的過載是同乙個類中方法之間的關係,是水平關係。2 覆蓋只能由乙個方法,或只能由一對方法產生關係 方法的過載是多個方法之間的關係。3 覆蓋...