c#get方法表单继承类

时间:2012-08-14 14:07:45

标签: c# class methods

我们有课程:

    class A
    {

    }

    class B:A
    {
      public void metod(){}
    }

    static class C
    {
        static void met(B clas)
        {
            A test = clas as B;
            // is it any way to get method "metod " from B via test?
        }
    }

我知道这看起来像废话但是这个想法是对的,我不能在C类中制作B对象。

4 个答案:

答案 0 :(得分:1)

儿童可以通过base访问父母。例如,

base.SomeMethod();

因为继承子时知道父母是谁,父类成为基础

但没有像child这样的关键字,因为base不知道哪个类会继承它。

孩子可以有单亲,但父母可以有一个或多个孩子。

答案 1 :(得分:1)

你需要像这样转换它,而不是你可以访问

Base derivedInstance = new Derived();
Derived child= (Derived)derivedInstance; 
child.Callmethod();

简而言之

   A test = clas as B;
   ((B)test).method();

答案 2 :(得分:0)

您可以将测试转换为B,或者只是首先使用声明为B的变量:

((B)test).metod();

clas.metod();

答案 3 :(得分:0)

 class A
    {
      public virtual void method(){}
    }
    class B:A
    {
      public override void method(){}
    }
 and 
    static class C
    {
    static void met(B clas)
      {
        A test = clas as B;
        test.method(); //this may be what you want?
       }
    }