当前位置: 代码迷 >> Java Web开发 >> 重载与重写的问题
  详细解决方案

重载与重写的问题

热度:256   发布时间:2010-05-22 17:38:32.0
重载与重写的问题
重载与重写有什么区别呢,请大哥们说详细一点,最好有例子说明一下,谢谢了!
搜索更多相关主题的帖子: 重写  重载  

----------------解决方案--------------------------------------------------------
override是重写,对应于OO编程的继承特性,意思就是在子类中重写父类中的方法;   
overload是重载,对应于OO编程的多态特性,意思就是在同一个类中同样名称的多个方法, 这多个方法之间的区别在他们的参数列不同。


----------------解决方案--------------------------------------------------------
void init(int start) {}
void init(int start, int end){}
这是重载
void init(int start) {}
void init(int start) {}
这是重写,默认会执行父类的!


----------------解决方案--------------------------------------------------------
最容易区分的应该是如果方法的名字名同但是参数和返回值都有不同的化就是重载;
重写必须是完全相同的两个方法,但是方法体不同;
void test(int x,int y){System.out.println();}     1
void test(int x){int a=1;}                         2
void test(int x,int y){String a=new String("hello!");}  3
1与2的关系就是重载了,1与3是重写;
----------------解决方案--------------------------------------------------------
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)
----------------解决方案--------------------------------------------------------
void init(int start) {}
void init(int start, int end){}
这是重载
void init(int start) {}
void init(int start) {}
这是重写,默认会执行父类的!


----------------解决方案--------------------------------------------------------
重写的方法分别在父类和子类中。
重载的方法在一个类中。
----------------解决方案--------------------------------------------------------
  相关解决方案