如何在C#

时间:2017-03-06 07:02:42

标签: c#

我想在基类中使用不同的方法名访问子类方法,尝试将子类对象的ref赋值给基类,但是显示错误。

以下是我的示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Concepts
{
    class Parent 
    {
        public void display()
        {
            Console.WriteLine("I am in parent class");
        }
    }

    class children : Parent
    {
        public void displayChild()
        {
            Console.WriteLine("I am in child class");
        }
    }

    class Program 
    {
        static void Main(string[] args)
        {
            children child = new children();
            Parent par = new children();
            par.displayChild();
            child.display();
            child.displayChild();
            Console.ReadLine();
        }
    }
}

在上面的代码par.displayChild();中显示错误。

2 个答案:

答案 0 :(得分:1)

Parent par = new children();创建children的新实例,但将其分配给Parent变量。变量类型确定您可以访问的方法和属性。 Parent没有方法displayChild(),因此您收到错误。

答案 1 :(得分:0)

当您使用新的Parent实例创建children对象时,您可以强制将其转换为children,然后使用displayChild方法。

class Program 
{
    static void Main(string[] args)
    {
        children child = new children();
        Parent par = new children();
        (par as children).displayChild();
        child.display();
        child.displayChild();
        Console.ReadLine();
    }
}