问答详情
源自:2-3 虚方法和多态

用基类类型引用不能调用派生类中的个性方法吗?

我的派生类中如果定义了新的方法(基类中没有的方法),用基类引用的话,不能调用这个方法。这是为什么?

提问者:qq_温火润心_0 2017-09-02 11:53

个回答

  • 殇丶黎
    2017-09-07 19:47:09

    恩好像是

  • qq_涉猎鸢_03255377
    2017-09-02 18:25:32

    class Program{
        static void Main(string[] args){
        Pet dog = new Dog();                            //这里使用了多态,引用是基类
        dog.Name = "Jack";                              //赋值,是给基类的Name赋值
        dog.PrintName();                                //这里需要引用派生类、相同签名、新的方法,要使用
                                                        虚方法,就需要在基类--方法--声明virtual
                                                        //然后再在派生类--方法--声明override,派生写基类的方法,
                                                        这个可称为复写、重写等等
                                                        //但是,Name属性给了基类,如果派生也有同名属性,
                                                        就会没有给派生类(一般不大会有这情况)
        dog.Speak();
        Pet cat = new Cat();
        cat.Name = "Tom";
        cat.PrintName();
        cat.Speak();
        }
    }