您的位置:首页 > 编程语言 > Java开发

java中重载和重写的区别

2017-08-22 00:31 190 查看
一,方法

   是一段用来完成特定功能的代码片段。方法在其他语言中也叫函数。

   在方法里面定义局部变量不能有修饰符,final除外

   语法

   [修饰符]+[修饰符]+返回值类型+方法名(形式参数1,形式参数2…………){

        //方法体

     return null;//返回值

   }

return :如果方法的返回值类型为void则可以不使用return 

如果方法需要返回值,则要返回相应的数据类型

1、形式参数(形参):在方法被调用时用于接收外界输入的数据。形参中的变量,在方法中是以局部变量的形式在使用。

2、实际参数(实参):调用方法时实际传给方法的数据。

3、返回值类型:方法运行结束之后,一般会有运行结果来返回给调用者,返回值类型就是运行结果的数据类型。若一个方法没有返回值,必须给出返回值类型void

4、返回值:方法在执行完毕后返还给调用者的具体数据,该数据的数据类型必须与返回值类型匹配。

5、return 语句终止方法的运行并指定要返回的数据。如果返回值类型为void,则可以直接写return而无需返回值,也可以省略return语句。

三,方法的重载

   构成方法重载的必要条件是   方法名相同    参数列表不同(参数类型\当有两个不同类型参数时,顺序不同\个数不同)

        1.定义在同一个类中

        2:当参数列表里的参数个数相同且为基本数据类型时,调用时会取当前参数类型范围较小的那一个参数。

方法重写
为什么子类要重写方法?
由于父类中的方法功能过于简单,或者不适用于子类,这种情况需要对父类方法在子类中重写。

例如:Animal中speak方法,输出为“我是一个动物”, Cat是Animal的子类,这时如果直接调用父类的方法就有点不太合适,就需要在子类中重写speak方法。

方法重写规则
方法重写规则:两同两小一大
两同:方法名相同,参数列表相同
两小:
被重写的方法在子类中的返回值类型的范围比父类小或者与父类相同
被覆盖的方法在子类中抛出的异常范围比父类小或者与父类相同
一大
9c41

被覆盖的方法在子类中访问控制权限比父类的大或者相等
提示:

1. 可以在方法上加@Override测试是否是重写的方法,如果不是,加了@Override后编译会出错
2. 在Eclipse中可以观察方法前面是否是绿色三角箭头,如果有代表是重写的方法。


方法重载和方法重写的区别

No.比较点重载重写
1单词OverloadOverride
2方法的声明方法名相同,参数列表不同方法名相同,参数列表相同
3返回值没有要求返回值必须相同或者子类
4访问权限没有要求子类不能比父类更加严格
5范围同一个类中继承关系中
方法中的参数传递

    基本数据类型传递的是值

    引用数据类型传递的对象的引用[内存地址]

    形参:当方法被调用时用来接收用户输入的数据
    实参:当方法被调用时用户传入的数据(传给方法的数据)

五,递归

   递归就是在方法里面调用自己的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: