关于继承的问题,无法调用override后的方法

这是这个父类

public class Surface
    {
        public List<Coordinate> Refpoint;      
        public Surface()
        {
            this.Refpoint = new List<Coordinate>();
        }
        public virtual bool Testinorout(double[] p)
        { return false; }
    }
                ```
这是子类
    public class Circle:Surface
    {           
        public Circle() 
        {}
        public double Radius{set;get;}
        public Coordniate Center{set;get;}
        public override bool Testinorout(double[] p)
            {
        .......
            }
    }
主程序中
Surface a1 = new Circle();
a1.Testinorout(p)的方法却调用的父类的方法,返回值一直都是false,我看视频里

    Person p=new China();

    p.SayHi();    调用的是自类China中的方法 为什么到这里就不行了呢?

你在基类里面写个Console.WriteLine 在子类里面用base.Testinorout(double[] p);调用看看。

我在子类Testinorout里写了

return true;

在主程序里返回的就是true,代码应该是对的,可能是其他问题。
还有,子类是不是把Coordinate写错了?