ocpdba3
2010-09-15 12:38
浏览 213
已采纳

java 菜鸟提问

大家好!我想问的问题是:

父类中的构造方法使用protected 或者public 修饰,子类使用super引用父类的构造函数,这两种情况有什么不同么?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • haha662 2010-09-15 16:26
    已采纳

    不好意思,上面我说错了,应该是有区别的,
    如果类A 用protected修饰构造函数,那么当你其他类C(这个类C与类A不在同一包中)访问这个方法时,即new A,或new A的子类,这样是不行的,会找不到这个protected构造函数,只有C类,和A类同在一个包时,才可以找得到。
    如果A类用public 修饰构造函数的话,就没这样的限制。及时C类和A类不在同一包中也可以访问。应该是这样,如果有什么不对,请大家指正

    打赏 评论
  • songfantasy 2010-09-15 12:41

    protected 表示只能是子类使用
    public 表示可以是任何类都可以使用的构造。

    打赏 评论
  • haha662 2010-09-15 15:26

    应该没有什么不同,因为父类的protected方法,子类是可以调用的,public就更不用说了,只要是父类对象和子类对象都可以调用

    打赏 评论
  • NKIE03 2010-09-15 16:51

    protected:只能是子类使用,因为是构造方法,这代表什么呢?A类构造方法是用来创建对象时被调用的。那代表如果你使用protected做构造方法(没有其他public构造的前提下),只有继承了这个类的类(就是子类)才可以通过new创建这个A类的实例。

    public:任何类都可以用new创建A类的对象。

    建议:楼主可以看一下SCJP的资料,考证可以不考,可是里面的知识对扎基础还是很好滴~~
    加勒个油啊~! :arrow:

    打赏 评论

相关推荐 更多相似问题