1. 你通常怎样用多态?
假设我有一个类,里面有一个 printstatus 方法,用于打印实例的当前状态,我希望该类的派生类都带有一个 printstatus 方法,并且这些方法都用于打印其实例的当前状态。那么我会这样表达我的愿望:
| // code #01 class base { public virtual void printstatus() { console.writeline("public virtual void printstatus() in base"); } } |
| // code #02 public void displaystatusof(base[] bs) { foreach (base b in bs) { b.printstatus(); } } |
| public static xmlreader create(stream input); |
| // code #03 class derived1 : base { public override void printstatus() { console.writeline("public override void printstatus() in derived1"); } } |
| // code #04 class derived2 : base { public new void printstatus() { console.writeline("public new void printstatus() in derived2"); } } |
| base[] bs = new base[] { new base(), new derived1(), new derived2() }; |
| // output #01 // public virtual void printstatus() in base // public override void printstatus() in derived1 // public virtual void printstatus() in base |
| // code #06 base d2 = new derived2(); d2.printstatus(); // output #02 // public virtual void printstatus() in base 而在 derived2 内部,你可以透过 base 来访问: // code #07 base.printstatus(); |
| // code #08 interface iface { void printstatus(); } class base : iface { public virtual void printstatus() { console.writeline("public virtual void printstatus() in base"); } } |
| // code #09 class derived2 : base, iface { public new void printstatus() { console.writeline("public new void printstatus() in derived2"); } } |
| // code #10 iface[] fs = new iface[] { new base(), new derived1(), new derived2(), } |
| // code #11 public void displaystatusof(iface[] fs) { foreach (iface f in fs) { f.printstatus(); } } |
| // output #03 // public virtual void printstatus() in base // public override void printstatus() in derived1 // public new void printstatus() in derived2 |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器