首先讲讲方法的重载:

  Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数。

  判断是否重载只有两个条件:

  1)相同的方法名

  2)不同的参数 具体为:

    A、方法参数类型不同

    B、方法参数个数不同

    C、方法参数排列顺序不同

  代码如下:

package com.tocean.test;//包名
public class Test1 {
public void name(int i){
System.out.println("overloading");
} //方法类型不同
public void name(String name){
System.out.println("overloading");
}
//方法参数个数不同
public void name(int i,String name,double c){
System.out.println("overloading");
}
//参数的排列顺序不同
public void name(double c,int i ,String name){
System.out.println("overloading");
}
}

  与方法返回值和权限修饰符无关

  代码如下:

 package com.tocean.test;//包名
public class Test1 {
//与方法返回值无关
public int name(int i,String name){
return i;
}
//与权限修饰符无关
private void name(double c) {
System.out.println("overloading");
}
}

另外是方法的重写:

  Java的重写前提是继承,继承的子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要方法的重写。

  判断是否重写有五个条件:

    A、相同的方法名

    B:相同的方法参数

    C:权限修饰符不能比父类更窄

    D:抛出异常比父类不能更多

    E:返回值和父类返回值一致或是其子类

  代码如下:

package com.tocean.test;

public class Father {
public void getSay(String str){
System.out.println("父类在说:"+str);
}
} class Son extends Father{
//访问修饰符不能比父类更窄、不是方法重写
private void getSay(String str){
System.out.println("子类在说:"+str);
}
}
package com.tocean.test;

import java.io.IOException;

public class Father {
public void getSay(String str) throws Exception{
System.out.println("父类在说:"+str);
}
} class Son extends Father{
//抛出的方法比父类更多,不是方法的重写(注意是异常的数量,不是异常的范围)
private void getSay(String str) throws IOException,RuntimeException{
System.out.println("子类在说:"+str);
}
}
package com.tocean.test;

public class Father {
public String getSay(String str) {
System.out.println("父类在说:"+str);
return str;
}
} class Son extends Father{
//方法的返回值与父类相同,是方法的重写
public String getSay(String str) {
System.out.println("子类在说:"+str);
return str;
}
}
package com.tocean.test;

public class Father {
public Object getSay(String str) {
System.out.println("父类在说:"+str);
return str;
}
} class Son extends Father{
//方法的返回值与父类不相同相同,但是其的子类,是方法的重写
public String getSay(String str) {
System.out.println("子类在说:"+str);
return str;
}
}

详细讲解Java中方法的重载和重写的更多相关文章

  1. Java中方法的重载与重写

    1.方法的名字和参数列表称为方法的签名:每个方法具有唯一与其对应的签名: 2.方法的重载:在某个类中,存在具有多个相同名字不同参数列表的方法,称之为重载: 被重载的方法必须改变参数列表(参数个数或类型 ...

  2. 第五节:详细讲解Java中的接口与继承

    前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...

  3. 第四节:详细讲解Java中的类和面向对象思想

    前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...

  4. 第九节:详细讲解Java中的泛型,多线程,网络编程

    前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...

  5. 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架

    前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...

  6. 第七节:详细讲解Java中的日期,java.util.date

    前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...

  7. Java中方法的重载

    Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...

  8. 第六节:详细讲解Java中的装箱与拆箱及其字符串

    前言 大家好,给大家带来详细讲解Java中的装箱与拆箱及其字符串的概述,希望你们喜欢 装箱与拆箱 封装类有:Byte , short , Integer , Character , long , Fl ...

  9. Java学习笔记十二:Java中方法的重载

    Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...

随机推荐

  1. 牛B的swift屏幕旋转经验终结者(OC统一思路)

    牛B的swift屏幕旋转经验终结者(OC统一思路) 1.AppDelegate (1)定义变量 var blockRotation: Bool = false (2)定义方法 Swift代码 func ...

  2. ios微信公众号分享回调事件

    IOS手机在分享成功后,回调事件无法正常执行,在回调方法里面加入: setTimeout(function () { //todo }, ); 例如: //分享 Share({ title: &quo ...

  3. javascript--自定义弹出登陆窗口(弹出窗)

    web开发中浏览器对象封装了诸如prompt.alert.confirm等弹出框,但是有的弹出框并不能满足开发需要,需要我们自己定义弹出框,诸如用户登陆框.消息提示框等.本文利用弹出用户登陆框示例,对 ...

  4. 【c学习-9】

    /*内存练习*/ #include #include//引入内存分配库文件 int main(){ double* x; //定义整型指针和double指针 int* y; x=(double*)ma ...

  5. wamp2.5怎么设置虚拟域名

    换了台电脑~好不顺手.老大的机器上装的是wamp.几年没用差点连怎么设置虚拟域名都忘记了.自己写点东西~做个备忘吧. 首先,版本 然后在网上百度一堆七七八八的.做的时候没那么复杂.跟phpstudy差 ...

  6. 基于设备树的led驱动程序

    #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include ...

  7. windows和Ubuntu下安装mongodb

    windows 下载 mongodb官网下载压缩版安装包:下载地址:https://www.mongodb.com/download-center/community 注意选择版本(目前windows ...

  8. python三大神器之生成器

    生成器Generator: 本质:迭代器(所以自带了__iter__方法和__next__方法,不需要我们去实现) 特点:惰性运算,开发者自定义 在python中有三种方法来获取生成器: 1.通过生成 ...

  9. 第一个网页(仿照当当网,仅仅使用CSS)

    这个网页是在学过CSS之后,对当当网首页进行模仿的网页,没有看当当网的网页源码,纯按照自己之前学的写的,由于是刚学过HTML和CSS才一个星期,所以里面有许多地方写的非常没有水平,仅仅用来学习使用,欢 ...

  10. hack游戏攻略(梦之光芒黑客小游戏)

    2019.2.11 继续玩~~还是黑客游戏闯关类的 地址:http://monyer.com/game/game1/ 直接查看页面代码: first.php就是了: 查看源代码: 这里尝试输入 两个空 ...