THU-xlj
2016-01-09 03:44
采纳率: 71.4%
浏览 2.3k
已采纳

JAVA子类不能继承父类私有方法是么

父类都不能用他本身的私有方法,子类岂不是更不能用了,这一点是怎么证明的?举个例子图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 毕小宝 2016-01-09 06:41
    已采纳

    父类本身的私有方法是可以被自己的其他方法调用的,但是这些私有方法子类是不能调用的,但是可能被间接调用。
    例如下面的例子,父类的私有方法被一个公有方法调用了,那么子类继承这个公有方法后也就间接调用了父类的私有方法了。但是子类可直接访问的方法里却没有这个私有方法的。

     public class Parent {
        public void say(){
            call();
        }
    
        private void call(){
            System.out.println("parent private ...");
        }
    
    }
    public class ParentSon extends Parent{
        public static void main(String[] args) {
            ParentSon son = new ParentSon();
            son.say();
        }
    
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • willxiao_forever 2016-01-09 04:01

    私有就是为了不对外暴露,如果想被子类使用,设置成protect就可以了

    评论
    解决 无用
    打赏 举报
  • 奔腾的野马 2016-01-09 04:28

    父类的私有方法只可以在父类的内部使用,通过对象是没法调用的。但可以被子类继承,而子类不能直接访问这个私有方法。

    评论
    解决 无用
    打赏 举报
  • 另一花生 2016-01-09 04:53

    既然是私有,肯定是不能让别人用,不然和共有还有什么区别??

    评论
    解决 无用
    打赏 举报
  • ITDragon龙 2016-01-09 06:50

    私有的肯定是不能被继承的。私有就是自己能用。

    评论
    解决 无用
    打赏 举报
  • qq970973742 2016-01-09 09:21

    其實我的理解是被繼承的,只是不被使用:如
    class A{public int i = 0;}
    class B extends A{public int i = 1;}
    class C{
    public static void main(String[] args){
    A a = new B();
    System.out.print(a.i);
    }
    }
    你會發現儘管是A的引用B的對象,應該調用的是1,但是卻是0,可以推出其實是在B中也是有A的空間.
    同樣其實在子類中也有基類的private方法,但僅僅被限制不能使用而已.而且父類肯定能過使用其自身的private方法,這點你需要弄清楚,不管是private域還是方法

    评论
    解决 无用
    打赏 举报
  • 君莫傲 2016-01-09 13:50

    private为私有属性,所以只能被本类使用,其他类不能使用和访问

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题