第一个程序:
public class MainClass{ public int num1 = 0; public static int num2 = 0; public void change(int i) { i = 5; num2 = i; } public void change(MainClass m) { MainClass tmp = new MainClass(); tmp.num1 = 9; m = tmp; } public void add(int i) { i += 10; num2 += 10; } public void add(MainClass m) { m.num1 += 20; } public static void Main(string[] args) { MainClass m = new MainClass(); Console.WriteLine("A m1:{0} m2:{1}", m.num1, MainClass.num2); m.change(m.num1); Console.WriteLine("B m1:{0} m2:{1}", m.num1, MainClass.num2); m.change(m); Console.WriteLine("C m1:{0} m2:{1}", m.num1, MainClass.num2); m = new MainClass(); m.add(m.num1); Console.WriteLine("D m1:{0} m2:{1}", m.num1, MainClass.num2); m.add(m); Console.WriteLine("E m1:{0} m2:{1}", m.num1, MainClass.num2); }}第二个程序:public abstract class BaseClass{ public virtual void MethodA() { Console.WriteLine("BaseClass :MethodA "); } public abstract void MethodB();} public class Class1 : BaseClass{ public override void MethodA() { Console.WriteLine("Class1:MethodA "); } public override void MethodB() { Console.WriteLine("Class1:MethodB "); }} public class Class2 : Class1{ public override void MethodA() { Console.WriteLine("Class2:MethodA "); } new public void MethodB() { Console.WriteLine("Class2:MethodB "); }} public class MainClass{ public static void Main(string[] args) { Class1 c1 = new Class1(); c1.MethodA(); c1.MethodB(); Class2 c2 = new Class2(); c2.MethodA(); c2.MethodB(); Class1 c21 = c2 as Class1; c21.MethodA(); c21.MethodB(); BaseClass c11 = new Class1(); c11.MethodA(); c11.MethodB(); BaseClass c22 = new Class2(); c2.MethodA(); c2.MethodB(); }}是雅虎公司的面试题,请各问指教,谢谢~~
public class MainClass{ public int num1 = 0; public static int num2 = 0; public void change(int i) { i = 5; num2 = i; } public void change(MainClass m) { MainClass tmp = new MainClass(); tmp.num1 = 9; m = tmp; } public void add(int i) { i += 10; num2 += 10; } public void add(MainClass m) { m.num1 += 20; } public static void Main(string[] args) { MainClass m = new MainClass(); Console.WriteLine("A m1:{0} m2:{1}", m.num1, MainClass.num2); m.change(m.num1); Console.WriteLine("B m1:{0} m2:{1}", m.num1, MainClass.num2); m.change(m); Console.WriteLine("C m1:{0} m2:{1}", m.num1, MainClass.num2); m = new MainClass(); m.add(m.num1); Console.WriteLine("D m1:{0} m2:{1}", m.num1, MainClass.num2); m.add(m); Console.WriteLine("E m1:{0} m2:{1}", m.num1, MainClass.num2); }}第二个程序:public abstract class BaseClass{ public virtual void MethodA() { Console.WriteLine("BaseClass :MethodA "); } public abstract void MethodB();} public class Class1 : BaseClass{ public override void MethodA() { Console.WriteLine("Class1:MethodA "); } public override void MethodB() { Console.WriteLine("Class1:MethodB "); }} public class Class2 : Class1{ public override void MethodA() { Console.WriteLine("Class2:MethodA "); } new public void MethodB() { Console.WriteLine("Class2:MethodB "); }} public class MainClass{ public static void Main(string[] args) { Class1 c1 = new Class1(); c1.MethodA(); c1.MethodB(); Class2 c2 = new Class2(); c2.MethodA(); c2.MethodB(); Class1 c21 = c2 as Class1; c21.MethodA(); c21.MethodB(); BaseClass c11 = new Class1(); c11.MethodA(); c11.MethodB(); BaseClass c22 = new Class2(); c2.MethodA(); c2.MethodB(); }}是雅虎公司的面试题,请各问指教,谢谢~~
解决方案 »
- 在窗体2中修改窗体1的label.text需要用委托吗
- winform panel 半透明问题
- 熟悉东日软件的SkinBuilder的来回答
- 离职,散分 ...惯例问个问题
- 求一个C# winform dataGridView1添加 修改 删除 查询 的完整代码 必须没错误的。多谢各位大侠了。。
- SQL中多行数据,按照相同列,组合成一条数据
- c# 状态条StatusStrip 如何添加ToolStripButton控件
- 关于IP地址的问题!!
- HELP:在IDE设计模式下如何将拖到容器控件上的控件的父对象设置为容器控件中的子控件
- 简单问题
- 正则提取QQ号码 <a target="_blank" href='http://wpa.qq.com/msgrd?V=1&Uin=1002108975
- 并口访问问题
B m1:0 m2:5
C m1:0 m2:5
D m1:0 m2:15
E m1:20 m2:15第二个:Class1:MethodA
Class1:MethodB
Class2:MethodA
Class2:MethodB
Class2:MethodA
Class1:MethodB
Class1:MethodA
Class1:MethodB
Class2:MethodA
Class2:MethodB
前两次输出和后两次输出不用说了,很容易理解
主要是第三次输出
建议自己看看msdn里 new 关键字 和overrid 关键字