using system;
using system.collections;
public class nevermore60customer:customer
{
public override string getfunnystring()
{
return "nevermore60.nevenmore!";
}
--------------------------------------------------------------------------------
public class customer
{
public virtual string getfunnystring()
{
return "plain ordinary customer.kaark!";
}
public class samplesarray
{
public static void main()
{
customer cust1=new nevermore60customer();
nevermore60customer cust2;
// cust1=new customer();
console.writeline("customer referencing customer."+cust1.getfunnystring());
cust1=new nevermore60customer();
console.writeline("customer referencing nevenmore60customer:"+cust1.getfunnystring());
cust2=new nevermore60customer();
console.writeline("nevenmore60customer referencing"+cust2.getfunnystring());
}
}
customer cust1=new nevermore60customer();
如果是重寫:則,如果聲明的基類對象,指向的是派生類,那么這時調用的是派生類中對基本重寫的方法的方法(如上所示)
如果是隱藏基類方法: public new string getfunnystring()
{
return "nevermore60.nevenmore!";
}
則:customer cust1=new nevermore60customer();此時cust1調用的仍是聲明時候的基類中的getfunnystring方法.
但二者聲明與賦值都是同一個類時,不會發生這種問題.
新聞熱點
疑難解答