首页 > 编程知识 正文

override和overwrite的区别,overload和override的区别

时间:2023-05-04 23:55:10 阅读:166809 作者:925

override和overload的区别

方法重载

(1)方法重载是用于统一处理不同类别类型数据的手段。 同时存在多个同名函数,且具有不同的参数数/类型。 超载Overloading是类内多态性的表现。

)2)重载Java方法是指可以在类中创建具有相同名称但具有不同参数和不同定义的多个方法。 调用方法时,传递给它们的参数的数量和类型决定了具体使用哪个方法

这就是多态性。

)重载时,方法名称相同,但参数类型和个数不同。 返回类型可以相同也可以相同。 返回类型不能作为重载函数的区分标准。

e.g

公共类概述demo {

void purchase (

System.out.println ('买菜);

}

voidpurchase(stringwhat ) {

system.out.println (买' what );

}

voidpurchase(stringwhat,int number ) {

system.out.println('number '斤' what );

}

voidpurchase(stringwhat,String where ) {

从System.out.println (到' where '买' what );

}

voidpurchase(stringwhat,int number,String where )。

买System.out.println (从到' where ' number '斤' what );

}

voidpurchase(stringwhat,int number,String where,String when ) {

买system.out.println(when (到(where ) number )斤) what );

}

publicstaticvoidmain (string [ ] args ) {

overloaddemoold=newoverloaddemo (;

old.purchase (;

old.purchase (米);

old.purchase ('米',100 );

old.purchase ("米"、"步步高超市" );

old.purchase ('米',100,'步步高超市');

old.purchase ('米',100,'步步高超市','下午');

}

}

重写方法

)1)父类和子类之间的多态性重新定义父类的函数。 如果在子类中定义的方法具有与父类相同的名称和参数,则表示该方法已被重写

(覆盖)。 在Java中,子类继承父类的方法,并且不需要重写相同的方法。 但是,子类有时并不是直接继承父类的方法,而是想进行一定的修改,需要采用方法的改写。 方法重写也称为方法覆盖。

(2) ) ) )。

如果子类中的方法与父类中的方法具有相同的方法名称、返回类型和参数表,则新方法将复盖原始方法。 如果需要特定于父类的方法,请使用引用当前类的父类的super关键字。

)3)子类函数的访问限定权限不能小于父类。

e.g

class Stu{

字符串名称;

voiddisplay(stringname ) {

System.out.println ('我是学生。 我的名字是' name ';

}

}

class CollegeStu extends Stu{

字符串s major;

voiddisplay(stringname ) {

system.out.print ln-------------- ';

System.out.println ('我是大学生,我的名字是' name );

sMajor='计算机';

System.out.println ('我的专业是' sMajor );

}

}

class MiddleStu extends Stu{

字符串子;

voiddisplay(stringname ) {

system.out.print ln-------------- ';

System.out.println ('我是中学生。 我的名字是' name ';

sSubject='理科';

System.out.println ('我的专业是' sSubject );

}

}

公共类概述demo {

publicstaticvoidmain (string args [ ] ) {

Stu stu=new Stu (;

CollegeStu cstu=new CollegeStu (;

MiddleStu mstu=new MiddleStu (;

Stu s;

s=stu;

s.display ('酷支架);

s=cstu;

s.display (热心的发带);

s=mstu;

s.display ('酷毛衣);

}

}

=========================================================================================

方法改写的规则:

1 .参数列表必须与重写的方法完全相同。 否则,不能说是重写,而是超载。

2 .返回的类型必须始终与被重写方法的返回类型相同。 否则,不能说是重写,而是重载。

3 .访问修饰符限制必须大于被重写方法的访问修饰符(publicprotecteddefaultprivate )

4 .改写方法一定不能抛出新的检查异常或比改写方法xydhb更宽的检查型异常。 例如,

父类的方法xydhb中有检查异常IOException。 重写此方法时,Exception不能抛出。 只能抛出IOException的子类异常,可以抛出非检查异常。

方法重载规则:

1 .需要不同的参数列表

2 .参数列表不同就可以了,可以有不同的返回类型

3 .可以有不同的访问修饰符

4 .可以抛出不同的异常

重写和过载的区别如下。

改写多态性发挥作用,通过调用重载的方法可以大幅度减少代码的输入量,即使是相同的方法名称,只要传递不同的参数就可以具有不同的功能和返回值。

善于使用重写和过载,可以设计出结构清晰简洁的类,可以说重写和过载在代码编写过程中的作用非同一般。

原文: http://www.cn blogs.com/ou czw/p/3718171.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。