RG-*_*G-3 3 c# oop visual-studio-2010
我有这个代码:
namespace ClassLibrary1
{
public class Testing_Class
{
public string A()
{
int i = 3;
Console.Write("Value if i" + i);
string a = "John";
return a;
}
}
public class Testing : Testing_Class
{
public string A()
{
string a = "John";
Console.Write(a);
return a;
}
}
public class Test
{
public void foo()
{
Testing MyTesting = new Testing();
MyTesting.A(); //Dynamic Polymorphism ??
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用MyTesting.A()时,这是一个动态多态吗?我没有包含任何Virtual关键字或任何关键字Override?
你的输入?
不,这里没有多态性.您有一个非虚拟方法的非虚拟调用.与其他一些语言不同,默认情况下,C#中的方法和属性是非虚拟的.
为了证明多态性确实有效,你需要:
这是一个简短而完整的程序,展示了所有这些:
using System;
class Base
{
public virtual void Foo()
{
Console.WriteLine("Base.Foo");
}
}
class Derived : Base
{
public override void Foo()
{
Console.WriteLine("Derived.Foo");
}
}
class Test
{
static void Main()
{
Base x = new Derived();
x.Foo(); // Prints Derived.Foo
}
}
Run Code Online (Sandbox Code Playgroud)