黑马程序员技术交流社区

标题: 关于重写和重载的区别 [打印本页]

作者: 赵倩倩    时间: 2012-7-4 16:30
标题: 关于重写和重载的区别
一直将重写和重载混淆了 重载用的比较多所以比较熟悉  但是今天看书看到重写 又学到了新的知识啦  整理一下 不完全的请指导 自己总结的这个是
重写 在子类中重写 参数列表相同只是方法体中的内容不同   在运行时才对重写的内容进行编译
  重载  在同类中重载  参数列表不同(参数个数是变化的)在编译的时候已经将其生成在字节码文件中
  请大家补充啊
作者: 赵倩倩    时间: 2012-7-4 16:46
★╃小胖╃☆ 发表于 2012-7-4 16:34
http://bbs.itheima.com/forum.php?mod=viewthread&tid=17593&reltid=18494&pre_thread_id=0&pre_pos=1&ext ...

嗯 去看了  我的这个是上午看书看得,我自己觉得学着东西了  比起来那个帖子我总结的好简陋  去学习了 长知识去 嘿嘿
作者: 康子龙    时间: 2012-7-4 16:57
楼主说的这个很详细了啊,受教了,以前对重写的认识一直不是很清楚,没有认识到是在 ”在运行时才对重写的内容进行编译 “的,这回知道了,谢楼主分享知识!
作者: 赵倩倩    时间: 2012-7-4 17:00
康子龙 发表于 2012-7-4 16:57
楼主说的这个很详细了啊,受教了,以前对重写的认识一直不是很清楚,没有认识到是在 ”在运行时才对重写的 ...

我的愚见啊  看1楼给的那个连接 那个才是详细的  真的是受教了
作者: 林康春    时间: 2012-7-5 00:09
本帖最后由 林康春 于 2012-7-5 00:15 编辑

函数的重载:(Overload)

      函数名相同,参数列表不同的一类方法称之为函数的重载。如:构造函数。


          参数列表不同:
           
              1、个数不同
                  2、类型不同
                  3、顺序不同
     
函数的重写:(Override)
     
        当子类的继承了父类的资源,感觉父类的方法不能满足子类的需求时,可以将父类的同名的方法进行重写。

           特点:

               1、方法名必须一致
                   2、返回值类型必须一致(void)
                   3、参数列表必须一致
                   4、如果子类重写了父类的方法,那么子类的对象调用该方法时,一定调用的是子类重写过后的方法
                   5、子类重写的方法的修饰符一定要大于等于父类的方法的修饰符号
                   6、子类重写父类带返回类型的函数的时候,子类重写函数的返回值类型应该和父类一致或
                      是父类返回值类型的子类。
对于第6点,现在举个例子说明:
注意看红色的部分
   class A{
}
class B  extends A
{
}
// 描述一个员工类和经理类
class Employee
{
        // 属性
        public String name;
        public String id;

        // 方法
        public void work(){
          System.out.println("办公自动化...");
        }

        public A getA(){
          System.out.println("Employee getA()");
          return new A();
        }
}
class Manager extends Employee
{
    public void work(){
          System.out.println("做管理...");
        }

        public B getA(){
          System.out.println("Manager getA()");
          return new B();//这个返回的类型必须是上面那个的子类或者和它一致
        }
}

作者: 付蛟龙    时间: 2012-7-5 00:13
学习了。。。




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