首先讲讲方法的重载:

  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. For macOS.百度网盘 破解SVIP、下载速度限制~

    For macOS.百度网盘 破解SVIP.下载速度限制~ 是插件的 https://github.com/CodeTips/BaiduNetdiskPlugin-macOS 2019-01-03 让 ...

  2. springboot properties文件中的数据通过@Value()形式注入

    首先在resources目录下新建一个properties文件,如下图 在photoPath.properties中写入内容,key=value的形式,如下图 在你需要引用properties的类头部 ...

  3. 【Linux磁盘优化管理--RAID和LVM】

    在现阶段的企业环境中,为了数据的安全性及完整性必须要有一个合理的存储方案.面对着每秒可能产生超过几TB的数据,考虑到磁盘能不能实现 热冗余,及扩容,缩容.Linux给出了RAID(磁盘阵列)以及LVM ...

  4. Centos在虚拟机VMware12上的安装

    欢迎评论和更正 虚拟机12的安装 看教程https://blog.csdn.net/yhj19920417/article/details/72891766 centos6.5镜像下载(选minima ...

  5. QQ群排名霸屏技术居然是这样简单

    最近做了一些收费的QQ群,收多少钱,一块钱的入门费,也就是说进入我的QQ群必须要1块钱的会费. 我的QQ群主要是干嘛呢,放些电影,比如说市面上电影院,正在播放的,最新最热门的,火爆的一些电影. 先前呢 ...

  6. php PHPEXcel导出

    1获取数据,2组装数据,3生成文件. 注意:无法使用ajax生成导出. $settlement = \Yii::$app->request->get('settlement'); $sav ...

  7. 转译符,re模块,random模块

    一, 转译符 1.python 中的转译符 正则表达式中的内容在Python中就是字符串 ' \n ' : \ 转移符赋予了这个n一个特殊意义,表示一个换行符 ' \ \ n' :  \ \  表示取 ...

  8. Java8新特性(三)——Optional类、接口方法与新时间日期API

    一.Optional容器类 这是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象. 查看结构图可以看到有如下常用方法: of(T)—— ...

  9. C++11中std::move的使用

    std::move is used to indicate that an object t may be "moved from", i.e. allowing the effi ...

  10. C++11中initializer lists的使用

    Before C++11,there was no easy way to do things like initialize a std::vector or std::map(or a custo ...