黑马程序员技术交流社区

标题: 覆盖方法与多态性的问题 [打印本页]

作者: kj1989    时间: 2014-1-1 17:23
标题: 覆盖方法与多态性的问题
本帖最后由 kj1989 于 2014-1-2 18:34 编辑

为什么覆盖方法时不能使用比父类中被覆盖的方法更严格的访问权限?我觉得和多态性有一定关系,当时具体什么关系,现在有点模糊。另外还和哪些有关联呢?
作者: zzmxhm    时间: 2014-1-1 19:48
举个栗子吧~

  1. // 假设子类中覆盖父类的方法可以有更严格的访问权限

  2. // 测试类
  3. public class Test {
  4.     Parent p = new Child();
  5.     p.sayHello();     // 因为动态绑定的机制,运行时调用的是子类方法,但子类该方法是 private 的,这样就出问题了
  6. }

  7. // 父类
  8. class Parent {
  9.     public void sayHello() {
  10.         System.out.println("Hello, I am Parent!");
  11.     }
  12. }

  13. // 子类
  14. class Child {
  15.     private void sayHello() {
  16.         System.out.println("Hello, I am Child!");
  17.     }
  18. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2