我想知道在C#中是否可以创建指向基类的类指针。然后,您可以将其设置为任何下层类。就像在C ++中一样:例如:
class Base
{
virtual void get() = 0;
}
class A : public Base
{
void get();
}
class B : public Base
{
void get();
}
main
{
int i = 0;
Base *base;
if(i==0)
base = new A();
else
base = new B();
}
答案 0 :(得分:0)
在C#中,所有类都是引用类型,因此您只需要使用普通声明。换句话说,它好像所有类类型的变量都被声明为classname&
(用C ++术语)。
namespace Demo
{
abstract class Base // Abstract means derived classes must implement.
{
public abstract void SomeVirtualMethod();
}
class Derived1 : Base
{
public override void SomeVirtualMethod()
{
// Do something.
}
}
class Derived2 : Base
{
public override void SomeVirtualMethod()
{
// Do something.
}
}
class Program
{
static void Main()
{
int i = 0;
Base b;
if (i == 0)
b = new Derived1();
else
b = new Derived2();
b.SomeVirtualMethod();
}
}
}