详细讲解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 ...
随机推荐
- 牛B的swift屏幕旋转经验终结者(OC统一思路)
牛B的swift屏幕旋转经验终结者(OC统一思路) 1.AppDelegate (1)定义变量 var blockRotation: Bool = false (2)定义方法 Swift代码 func ...
- ios微信公众号分享回调事件
IOS手机在分享成功后,回调事件无法正常执行,在回调方法里面加入: setTimeout(function () { //todo }, ); 例如: //分享 Share({ title: &quo ...
- javascript--自定义弹出登陆窗口(弹出窗)
web开发中浏览器对象封装了诸如prompt.alert.confirm等弹出框,但是有的弹出框并不能满足开发需要,需要我们自己定义弹出框,诸如用户登陆框.消息提示框等.本文利用弹出用户登陆框示例,对 ...
- 【c学习-9】
/*内存练习*/ #include #include//引入内存分配库文件 int main(){ double* x; //定义整型指针和double指针 int* y; x=(double*)ma ...
- wamp2.5怎么设置虚拟域名
换了台电脑~好不顺手.老大的机器上装的是wamp.几年没用差点连怎么设置虚拟域名都忘记了.自己写点东西~做个备忘吧. 首先,版本 然后在网上百度一堆七七八八的.做的时候没那么复杂.跟phpstudy差 ...
- 基于设备树的led驱动程序
#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include ...
- windows和Ubuntu下安装mongodb
windows 下载 mongodb官网下载压缩版安装包:下载地址:https://www.mongodb.com/download-center/community 注意选择版本(目前windows ...
- python三大神器之生成器
生成器Generator: 本质:迭代器(所以自带了__iter__方法和__next__方法,不需要我们去实现) 特点:惰性运算,开发者自定义 在python中有三种方法来获取生成器: 1.通过生成 ...
- 第一个网页(仿照当当网,仅仅使用CSS)
这个网页是在学过CSS之后,对当当网首页进行模仿的网页,没有看当当网的网页源码,纯按照自己之前学的写的,由于是刚学过HTML和CSS才一个星期,所以里面有许多地方写的非常没有水平,仅仅用来学习使用,欢 ...
- hack游戏攻略(梦之光芒黑客小游戏)
2019.2.11 继续玩~~还是黑客游戏闯关类的 地址:http://monyer.com/game/game1/ 直接查看页面代码: first.php就是了: 查看源代码: 这里尝试输入 两个空 ...