zoukankan      html  css  js  c++  java
  • Java中的方法重载

    一.什么是方法重载?

    方法重载就是两个或多个方法的方法名相同,但是方法的形参类型,数量,顺序不同。

    上面提到的三点也就是一个方法的特征标,只要有一点不相同,则该方法就不相同,就可以实现重载。

    在这里的重点是:实参与形参的匹配问题:

    1.由低等级转向高等级

    第一个就是类型提升的问题:byte->short->int->long->float->double(在普通的计算byte short char 不会相互转化)

    但是char会直接提升为int型不会转化为byte和short

    2.由高级转向低级必须要在参数传入时进行强制转化

    例子如下:

    package com.cjm.inititalize;
    
    /**
     * Java中的 函数重载
     * 
     * @author 小明
     *
     */
    public class FunctionOverLoading {
        /*
         * 函数重载形参与实参的类型提升问题
         */
        // ##############################
        public void f1(char x) {
            System.out.println("char");
        }
    
        public void f1(int x) {
            System.out.println("int");
        }
    
        public void f1(byte x) {
            System.out.println("byte");
        }
    
        public void f1(short x) {
            System.out.println("short");
        }
    
        public void f1(long x) {
            System.out.println("long");
        }
    
        public void f1(float x) {
            System.out.println("float");
        }
    
        public void f1(double x) {
            System.out.println("double");
        }
    
        // #######################################
        public void f2(byte x) {
            System.out.println("byte");
        }
    
        public void f2(short x) {
            System.out.println("short");
        }
    
        public void f2(long x) {
            System.out.println("long");
        }
    
        public void f2(float x) {
            System.out.println("float");
        }
    
        public void f2(double x) {
            System.out.println("double");
        }
    
        public void f2(int x) {
            System.out.println("int");
        }
    
        // ###################################
        public void f3(short x) {
            System.out.println("short");
        }
    
        public void f3(long x) {
            System.out.println("long");
        }
    
        public void f3(float x) {
            System.out.println("float");
        }
    
        public void f3(double x) {
            System.out.println("double");
        }
    
        public void f3(int x) {
            System.out.println("int");
        }
    
        // ####################################
        public void f4(long x) {
            System.out.println("long");
        }
    
        public void f4(float x) {
            System.out.println("float");
        }
    
        public void f4(double x) {
            System.out.println("double");
        }
    
        public void f4(int x) {
            System.out.println("int");
        }
    
        // #######################################
        public void f5(long x) {
            System.out.println("long");
        }
    
        public void f5(float x) {
            System.out.println("float");
        }
    
        public void f5(double x) {
            System.out.println("double");
        }
    
        // #######################################
        public void f6(float x) {
            System.out.println("float");
        }
    
        public void f6(double x) {
            System.out.println("double");
        }
    
        // #########################################
        public void textInt() {
            System.out.println("当形参为int型的5时:");
            f1(5);
            f2(5);
            f3(5);
            f4(5);
            f5(5);
            f6(5);
        }
    
        public void textChar() {
            System.out.println("当形参为字符型时:");
            f1('c');
            f2('c');
            f3('c');
            f4('c');
            f5('c');
            f6('c');
        }
        public void textByte() {
            System.out.println("当形参为byte型的5时:");
            byte b=5;
            f1(b);
            f2(b);
            f3(b);
            f4(b);
            f5(b);
            f6(b);
        }
        public void textLong() {
            System.out.println("当形参为long型的5时:");
            long b=5;
            f1(b);
            f2(b);
            f3(b);
            f4(b);
            f5(b);
            f6(b);
        }
        public static void main(String[] args) {
            FunctionOverLoading f = new FunctionOverLoading();
            f.textByte();
            
            
        }
    }

    结果如下:

    当形参为byte型的5时:
    byte
    byte
    short
    int
    long
    float
    当形参为字符型时:
    char
    int
    int
    int
    long
    float
    当形参为int型的5时:
    int
    int
    int
    int
    long
    float
    当形参为long型的5时:
    long
    long
    long
    long
    long
    float

     

  • 相关阅读:
    APUE学习笔记:第四章 文件和目录
    APUE学习笔记:第三章 文件I/O
    APUE学习笔记:第二章 UNIX标准化及实现
    APUE学习笔记:第一章 UNUX基础知识
    《数据库系统概念》学习笔记2
    go语言下载地址
    Centos7 编译 android4.4
    剑侠情缘新进展
    ubuntu server 14.04手动安装svn
    ubuntu server 14.04 lts显示乱码的问题
  • 原文地址:https://www.cnblogs.com/SAM-CJM/p/9314710.html
Copyright © 2011-2022 走看看