一下结论是本人通过eclipse亲自测试得到的,如果有错误,还望指出:
1.首先写一个父类,一个子类,父类中有一个私有方法,子类中暂时没有写任何方法。 在main方法中创建了一个子类的对象。先用子类的引用指向该子类对象,去调用父类中的私有方法,编译器报错。然后又用父类的引用指向子类的对象,去调用父类中的私有方法,运行成功。 由此,可以得出结论,子类是会继承父类中的私有方法,但是因为该方法是私有的,会被隐藏,只有让父类的引用指向子类的对象的时候才可以调用。
2.接下来,我在子类中声明了一个和父类同名的方法,然后进行测试,发现,当子类的引用指向子类对象,毫无疑问调用的是子类中的方法,当是父类的引用指向子类的对象时候,结果调用的是父类中的方法,于是就产生了这不符合多态性的疑问。经过思考,发现问题的关键在于父类中的方法是私有的,子类虽然继承了该方法,但是会隐藏这个方法,当你在子类中写一个同名的方法的时候,这算不上是方法的重写,而相当于在子类中写了一个新方法,因此就不会有多态性。
3.这是本人亲自测试得到的结论,大家也可以自己测试一下。