類的幾個重要特性之一多型性,有著廣泛的用途。
類的多型性包括:編譯時多型和執行時多型。
編譯時多型表現為乙個同名的方法會根據引數型別、個數和位置的不同有不同執行效果。通過方法過載來實現。顧名思義,它由編譯器根據呼叫引數的不同,選擇相應的函式。
執行時多型通過虛方法實現。表現為:相同的引數,仍會執行不同的函式。
例如://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 多型性 ...