C 學習之多型性

2021-04-30 15:34:38 字數 1715 閱讀 6062

類的幾個重要特性之一多型性,有著廣泛的用途。

類的多型性包括:編譯時多型和執行時多型。

編譯時多型表現為乙個同名的方法會根據引數型別、個數和位置的不同有不同執行效果。通過方法過載來實現。顧名思義,它由編譯器根據呼叫引數的不同,選擇相應的函式。

執行時多型通過虛方法實現。表現為:相同的引數,仍會執行不同的函式。

例如://using system;

//using system.collections.generic;

//using system.collections;

//using system.text;

//namespace study

//:", tmp.type1, tmp.type2);

//            }

//            console.readline();

//        }

//    }

//    public class itypecompare : system.collections.icomparer

//   

//            else

//           

//        }

//    }

//    class a

//   

//                set

//        }

//        public string type2 set }

//       public a(int arg1, string arg2)

//       

//    }

//}//using system;

//using system.collections.generic;

//using system.collections;

//using system.text;

//namespace study

//,", i, j);

//            console.readline();

//        }

//    }

//}using system;

using system.collections.generic;

using system.collections;

using system.text;

namespace study

static void main(string args)

}class a

public virtual void  fun2()//vitual必須位於函式返回值型別之前

}class b:a

public override void fun2() //vitual必須位於函式返回值型別之前

}}///請分析下結果 :)

輸出的結果:

a.fun1()

a.fun2()

b.fun1()

b.fun2()

a.fun1()

b.fun2()

a.fun1()

a.fun2()

a.fun1()

b.fun2()

對於fun3函式,引數相同,卻因為a所引用的物件不同,呼叫不同的函式。首發:http://xujiayou.w66.mydnns.cn/post/9.html

c 之 多型性

先看乙個例子 然後我們引進多型,看看 公升級的威力 1 include2 using namespace std 34 class liberation 10virtual intcombat 1114 private 15 intcapability 16 17class liberation a...

C 之多型性1

過載 類中定義的方法可能有不同的版本 public bool withdraw double amt,string name public bool withdraw double amt 特點 兩必須一可以 方法名必須相同 引數類標必須不相同 返回值型別可以不相同 虛函式 宣告虛方法 使用virt...

C 特性之多型性

c 多型性概括為 乙個介面,多種方法 程式在執行時才決定呼叫的函式,它是物件導向程式設計領域的核心概念。c 多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法成為覆蓋或者重寫,重寫可以有兩種,直接重寫成員函式和重寫虛函式,只有重寫了虛函式的才能算作體現了c 多型性 ...