详细讲解Java中方法的重载和重写
首先讲讲方法的重载:
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中方法的重载和重写的更多相关文章
- Java中方法的重载与重写
1.方法的名字和参数列表称为方法的签名:每个方法具有唯一与其对应的签名: 2.方法的重载:在某个类中,存在具有多个相同名字不同参数列表的方法,称之为重载: 被重载的方法必须改变参数列表(参数个数或类型 ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- 第四节:详细讲解Java中的类和面向对象思想
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
- 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架
前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...
- 第七节:详细讲解Java中的日期,java.util.date
前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...
- Java中方法的重载
Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...
- 第六节:详细讲解Java中的装箱与拆箱及其字符串
前言 大家好,给大家带来详细讲解Java中的装箱与拆箱及其字符串的概述,希望你们喜欢 装箱与拆箱 封装类有:Byte , short , Integer , Character , long , Fl ...
- Java学习笔记十二:Java中方法的重载
Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...
随机推荐
- SpringBoot非官方教程 | 第十二篇:springboot集成apidoc
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot-apidoc/ 本文出自方志朋的博客 首先声明下 ...
- getElementsByName和getElementById
1: 今天分享工作中遇到的一个小细节 1.1 先介绍一下两个方法分别是: 1.2 getElementById() :可返回对拥有指定 ID 的第一个对象的引用,如果您需要查找文档中的一个特定的元素 ...
- 安装Chrome插件
重装系统后重装了Chrome浏览器,想着将自己的东西同步到Chrome上.但是登录谷歌账号要FQ,我又是靠setup插件FQ,但插件又要靠账号同步到本地.形成了死循环. 其实重装系统前我将插件提取了, ...
- BZOJ2580: [Usaco2012 Jan]Video Game(AC自动机)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 159 Solved: 110[Submit][Status][Discuss] Descriptio ...
- mybatis笔记之一次插入多条数据sql语句写法
<insert id="insertList" parameterType="java.util.List"> insert into balanc ...
- 【原创】面向对象作业:选课系统中用pickle储存多个对象间组合引用关系的那些坑
转载请注明出处:https://www.cnblogs.com/oceanicstar/p/9030121.html 想直接看结论先提前列出: 1.存储一个对象,文件不是真的给你存储的了对象这种东西, ...
- openresty安装配置 Ubuntu下
1.进入openresty-1.11.2.4的压缩包木木,我这里是在“/usr/local/”下: 2.进入后执行[tar -xzvf openresty-1.11.2.4.tar.gz]进行解压 3 ...
- 迷你MyBank
该迷你MyBank,存贮是用对象数组来存贮的,所以比较简单,容易理解,适合新手.. 一.创建chengyuan类,在其中声明所需的成员变量: public class chengyuan { //该类 ...
- scala成长之路(1)基本语法和数据类型
scala作为JVM上的Lisp,是一种geek类型的编程语言,也一直是我等java程序员眼中的梦寐以求的一门技能,遂下定决心花一段时间好好学习scala.第一天学习,主要介绍与java在编程上的主要 ...
- Spyder在windows下常用快捷键
块注释/反块注释:Ctrl+4/5 行注释/反行注释:Ctrl+1 代码提示:Tab 复制一行:Ctrl+Alt+↓/↑ 删除一行:Ctrl+D 运行:F5 全屏:F11 撤销:Ctrl+Z 反撤销: ...