一般来说,方法重载是指在同一个类中有多个同名但不同参数的方法。但有没有特例呢??
比如:父类Animal有个public方法叫sleep(),子类Dog继承了Animal,但子类中也有一个public方法sleep(int time),只不过这个方法是个带参的方法,不是重写父类的方法。请问子类Dog的sleep方法算不算是重载的??
另外有一点疑惑的是:子类继承了父类,那么父类的公有成员是在子类中有一份拷贝呢还是说仅仅是在子类调用的时候才存在在子类中,或者是说子类继承父类,仅仅是在访问时可以使用父类的成员但子类本身并不具有这些成员??
请哪位Java大牛帮我解释一下,非常感谢!!

解决方案 »

  1.   

    重载和重写是完全不一样的       重载(overload),方法名称必须相同,参数必须不同。
    重写(overload),方法名称必须相同,参数也要相同。
      

  2.   

    继承就相当于子类已经有了那些方法,也就是包括了哪些方法。子类也具有这些成员。所以Dog的sleep方法是重载
      

  3.   

    重载(overload),方法名称必须相同,参数必须不同。------>在同一个类中
    重写(overload),方法名称必须相同,参数也要相同。------>在子类重写父类的方法
      

  4.   

    对,就是这个后期绑定在Java中该怎么理解?
      

  5.   

    Dog的sleep方法不算是重载吧  dog里面有两个sleep方法才算重载吧
      

  6.   

    针对楼主的第二个问题,子类只保存子类的信息和super指针。
      

  7.   

    重载(overload)发生在同一个类中  方法名字相同  参数表必须不同  (即参数的类型或者是参数的个数)  
    重写(overwrite)发生在继承关系下   父类中的方法不能满足子类的需求,为了达到要求子类要进行方法重写  方法的签名(方法名,参数,返回类型)和父类的要一致
       重写之后的访问控制符只能放大不能缩小
       而且抛出的异常不能更多
      

  8.   

    不知道有没有用心看,重写是override 不要误导人家
      

  9.   

    重载是在同一个类中这我知道,但子类继承来的sleep()方法难道不是自己的吗?
      

  10.   

    怎么能证明子类保存的是super指针而不是父类的拷贝呢?