我想在基类中使用不同的方法名访问子类方法,尝试将子类对象的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();
中显示错误。
答案 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();
}
}