首先讲讲方法的重载:

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

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

  1)相同的方法名

  2)不同的参数 具体为:

    A、方法参数类型不同

    B、方法参数个数不同

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

  代码如下:

  1. package com.tocean.test;//包名
  2. public class Test1 {
  3. public void name(int i){
  4. System.out.println("overloading");
  5. }
  6.  
  7. //方法类型不同
  8. public void name(String name){
  9. System.out.println("overloading");
  10. }
  11. //方法参数个数不同
  12. public void name(int i,String name,double c){
  13. System.out.println("overloading");
  14. }
  15. //参数的排列顺序不同
  16. public void name(double c,int i ,String name){
  17. System.out.println("overloading");
  18. }
  19. }

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

  代码如下:

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

另外是方法的重写:

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

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

    A、相同的方法名

    B:相同的方法参数

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

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

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

  代码如下:

  1. package com.tocean.test;
  2.  
  3. public class Father {
  4. public void getSay(String str){
  5. System.out.println("父类在说:"+str);
  6. }
  7. }
  8.  
  9. class Son extends Father{
  10. //访问修饰符不能比父类更窄、不是方法重写
  11. private void getSay(String str){
  12. System.out.println("子类在说:"+str);
  13. }
  14. }
  1. package com.tocean.test;
  2.  
  3. import java.io.IOException;
  4.  
  5. public class Father {
  6. public void getSay(String str) throws Exception{
  7. System.out.println("父类在说:"+str);
  8. }
  9. }
  10.  
  11. class Son extends Father{
  12. //抛出的方法比父类更多,不是方法的重写(注意是异常的数量,不是异常的范围)
  13. private void getSay(String str) throws IOException,RuntimeException{
  14. System.out.println("子类在说:"+str);
  15. }
  16. }
  1. package com.tocean.test;
  2.  
  3. public class Father {
  4. public String getSay(String str) {
  5. System.out.println("父类在说:"+str);
  6. return str;
  7. }
  8. }
  9.  
  10. class Son extends Father{
  11. //方法的返回值与父类相同,是方法的重写
  12. public String getSay(String str) {
  13. System.out.println("子类在说:"+str);
  14. return str;
  15. }
  16. }
  1. package com.tocean.test;
  2.  
  3. public class Father {
  4. public Object getSay(String str) {
  5. System.out.println("父类在说:"+str);
  6. return str;
  7. }
  8. }
  9.  
  10. class Son extends Father{
  11. //方法的返回值与父类不相同相同,但是其的子类,是方法的重写
  12. public String getSay(String str) {
  13. System.out.println("子类在说:"+str);
  14. return str;
  15. }
  16. }

详细讲解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. 课时57.HTML被废弃的标签(掌握)

    1.为什么HTML中有一部分标签会被废弃? 因为当前HTML中的标签只有一个作用,就是用来添加语义,而早期的HTML标签中有一部分标签是没有语义的 有一部分标签是用来修改样式的 所以这部分标签就被淘汰 ...

  2. 菜鸟崛起 DB Chapter 2 MySQL 5.6的概述与安装

    在上文菜鸟崛起 DB Chapter 1 数据库概述我们初步认识了数据库,也知道市面上常见的几种数据库,下面我们就针对常见的MySQL数据库展开对DataBase的探讨. 2.1  MySQL介绍 M ...

  3. Oracle db file parallel write 和 log file parallel write 等待事件

    一. db file parallel write等待事件 引自如下blog: http://oradbpedia.com/wiki/Wait_Events_-_db_file_parallel_wr ...

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

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

  5. JavaScript 基础(六) 数组方法 闭包

    在一个对象中绑定函数,称为这个对象的方法.在JavaScript 中,对象的定义是这样的: var guagua = { name:'瓜瓜', birth:1990 }; 但是,如果我们给瓜瓜绑定一个 ...

  6. java.util.ArrayList,java.util.LinkedList,java.util.Vector的区别,使用场合.

    下图是Collection的类继承图 从图中可以看出:Vector.ArrayList.LinkedList这三者都实现了List 接口.所有使用方式也很相似,主要区别在于实现方式的不同,所以对不同的 ...

  7. lnmp配置支持thinkphp和nginx路由url重写

    ThinkPHP3.2.3项目放到lnmp环境之后只能打开首页,或者通过传参方式打开控制器,否则就一直显示404页面.搞了一上午,终于解决了 step1: 修改php.ini cgi.fix_path ...

  8. AB PLC 编程之状态机

    AB的程序设计和西门子有点PLC不大一样,在AB中没有RS指令,所以主要用move指令来作步进.今天我们就用Move指令写个AB的程序,和西门子比,有哪些不同. 控制任务 很简单的一个状态机.初始步为 ...

  9. web学习第一天

    学习web心得 表格 table,表单 form,跑马灯效果 marquee,导入背景图片<img src="图片路径"> 第一天学的不是很难,作业也相对来说比较简单, ...

  10. 11 非阻塞套接字与IO多路复用(进阶)

    1.非阻塞套接字 第一部分 基本IO模型 1.普通套接字实现的服务端的缺陷 一次只能服务一个客户端! 2.普通套接字实现的服务端的瓶颈!!! accept阻塞! 在没有新的套接字来之前,不能处理已经建 ...