java中父类中的私有方法的问题
2017-03-19 20:10
176 查看
一下结论是本人通过eclipse亲自测试得到的,如果有错误,还望指出:
1.首先写一个父类,一个子类,父类中有一个私有方法,子类中暂时没有写任何方法。 在main方法中创建了一个子类的对象。先用子类的引用指向该子类对象,去调用父类中的私有方法,编译器报错。然后又用父类的引用指向子类的对象,去调用父类中的私有方法,运行成功。 由此,可以得出结论,子类是会继承父类中的私有方法,但是因为该方法是私有的,会被隐藏,只有让父类的引用指向子类的对象的时候才可以调用。
2.接下来,我在子类中声明了一个和父类同名的方法,然后进行测试,发现,当子类的引用指向子类对象,毫无疑问调用的是子类中的方法,当是父类的引用指向子类的对象时候,结果调用的是父类中的方法,于是就产生了这不符合多态性的疑问。经过思考,发现问题的关键在于父类中的方法是私有的,子类虽然继承了该方法,但是会隐藏这个方法,当你在子类中写一个同名的方法的时候,这算不上是方法的重写,而相当于在子类中写了一个新方法,因此就不会有多态性。
3.这是本人亲自测试得到的结论,大家也可以自己测试一下。
1.首先写一个父类,一个子类,父类中有一个私有方法,子类中暂时没有写任何方法。 在main方法中创建了一个子类的对象。先用子类的引用指向该子类对象,去调用父类中的私有方法,编译器报错。然后又用父类的引用指向子类的对象,去调用父类中的私有方法,运行成功。 由此,可以得出结论,子类是会继承父类中的私有方法,但是因为该方法是私有的,会被隐藏,只有让父类的引用指向子类的对象的时候才可以调用。
2.接下来,我在子类中声明了一个和父类同名的方法,然后进行测试,发现,当子类的引用指向子类对象,毫无疑问调用的是子类中的方法,当是父类的引用指向子类的对象时候,结果调用的是父类中的方法,于是就产生了这不符合多态性的疑问。经过思考,发现问题的关键在于父类中的方法是私有的,子类虽然继承了该方法,但是会隐藏这个方法,当你在子类中写一个同名的方法的时候,这算不上是方法的重写,而相当于在子类中写了一个新方法,因此就不会有多态性。
3.这是本人亲自测试得到的结论,大家也可以自己测试一下。
相关文章推荐
- Java关于子类对父类私有方法覆盖的问题
- Java里子类调用父类构造方法问题
- java中子类重写父类方法要注意的问题
- Java的重写与调用父类方法问题
- 待补充:java类里的私有变量问题,在对象A里有一个对象B,调用对象B的方法获取变量,会有短暂的缓存
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- Java____父类、子类——构造代码块、方法调用顺序问题
- Java里子类调用父类构造方法问题
- java中子类继承父类自动调用父类无参构造方法的问题
- 利用java反射调用类及父类的的私有方法
- java代码继承。。。找出不能继承父类方法的问题
- java 子类重写父类的方法应注意的问题
- Java中父类和子类关于构造方法和私有属性的几个问题
- Java 中子类是否只继承父类的非私有变量和方法?
- Java 中子类是否只继承父类的非私有变量和方法?
- java中子类与父类构造方法的问题
- Java中子类和父类构造方法的问题
- Java里子类调用父类构造方法问题
- java中关于子类实例化时调用父类无参构造方法的问题
- java 子类重写父类的方法应注意的问题