子类中存在和父类的同名同签名方法时,会出现警告,子类方法将会隐藏人类同名同参方法
可以使用new关键字消除警告
当父类引用子类对象时,调用的是父类方法
当子类引用子类对象时,调用的是子类方法
当父类引用父类对象时,调用的是父类方法
例如:- class Program
- {
- static void Main(string[] args)
- {
- B b = new B();
- A a = b;
- A a1 = new A();
- b.Say(); //打印出B
- a.Say(); //打印出A
- a1.Say(); //打印出A
- Console.ReadKey();
- }
- class A
- {
- public void Say() { Console.WriteLine("A"); }
- }
- class B : A
- {
- new public void Say() { Console.WriteLine("B"); }
- }
- }
复制代码 |