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

求解++++++++++++

用基类指向派生类 ,那派生类中自己所拥有独特的方法怎么被调用? Pet() cat = new Cat(); Cat(){ //独特的方法 }

提问者:qq_梦屿_0 2018-07-04 20:44

个回答

  • 慕沐0087746
    2018-07-05 17:13:24
    已采纳

    就相当于:

    动物 a = new 鸟();//我要一个动物就行(动物 a),给了一只鸟(new 鸟())

    a.吃();//我们知道a是动物,动物都能吃,所以a.吃()没有问题。

    a.飞();//这句话就有问题了,因为不是所有的动物a都能飞();所以,动物a是不能访问鸟的飞()的。

  • 慕沐0087746
    2018-07-05 17:06:51

    这个实例(cat)是子类的,但是因为你声明时是用父类(Pet)声明的,所以你用正常的办法访问不到子类(Cat)自己的成员Cat(),只能访问到从父类继承来的成员。 如果要硬访问的话,Cat() cat1 = cat as Cat(); cat1.Cat(); 我觉得这样就毫无意义了。