日期:2014-05-20  浏览次数:20694 次

关于一个多态的问题,,求大神指导,,,轻喷
不怕各位前辈笑话,今天用多态写一个东西时,突然碰到了一个问题,让我陷入了疑惑,,大家给我指点一下迷津。。。。。。。问题:是这样的,父类A,子类B,A有一个方法,子类B重写这个方法,但是B也有自己特有的成员变量,现在声明一个父类的引用,指向子类对象,可是我还要给B自己的成员变量赋值,这样在外部父类引用没办法访问到子类特有的成员变量,如果我将父类的那个引用强制转换成子类类型,这样是可以访问到子类类型的成员变量了,但是后面还要用到重写的那个方法,如果强制转换了,那么相当于直接用子类对象来调用那个方法了,也就是说针对父类的多态不就没有意义了么?

跪求轻喷
------解决方案--------------------
多态的前提是把子类对象当成父类对象来看,你现在做了个转换和多态就不搭边了吧
------解决方案--------------------
说的挺乱的,强制转换就不是多态了;
------解决方案--------------------
可以在父类里定义一个钩子方法(空的方法实现),然后在子类里重写该方法调用子类的方法给子类的属性赋值。