我有一个父类中有几个函数是抽象的,我希望这些函数是可以继承的,但是又不能被除本身和子类的其他任何类调用;如何做到这一点?

解决方案 »

  1.   

    把函数声明为protected即可。但是同一个包中的其他函数仍然可以访问。
      

  2.   

    to  ysycrazy(风中狂):
    那就没有办法让同一个包中的其他函数不可以访问吗?
      

  3.   

    to  ysycrazy(风中狂):
    那就没有办法让同一个包中的其他函数不可以访问吗?回复:如果想让其他包的其他类访问,那么就必须改为private,但是这样子类又没有办法访问了。
      

  4.   

    对不起上面写错了:
    to  ysycrazy(风中狂):
    那就没有办法让同一个包中的其他函数不可以访问吗?
    回复:如果不想让同一包的其他类访问,那么就必须改为private,但是如果这样无论是同一包中,还是不同包中的子类都没有办法访问了。
      

  5.   

    感觉java在函数的访问权限上有不足之处。
      

  6.   

    可以在这个方法中先来个if语句用instanceof判断一下调用的类是否是子类
    否则的话抛出一个异常
      

  7.   

    可继承、自己 和 子类都能访问,其它类不能访问,那么只有 protected 了。
    但是这样 会使 同一包内的其它 类也可以访问。
    看来这个包里不能有别的了。顺便问一句:
    一个类的方法被调用时,在方法内部能知道调用者是谁吗?
      

  8.   

    可以在这个方法中先来个if语句用instanceof判断一下调用的类是否是子类
    否则的话抛出一个异常我觉得这个方法不错
      

  9.   

    protected 这个是包内有好,不能解决楼主的问题!!!异常来抛错误是个不错的方法!
      

  10.   

    建议楼主看看这篇文章:http://www.graphics.net.cn/article/java/java_method_overloading.asp