多态

  • 1)方法的多态是通过参数来,区分的,不能通过返回值
  • 2)调用重载方法的原则是:先"精确"匹配,再按“自动类型转换”匹配
  • 3)@Override ,要求返回值、方法名、参数列表完全一样,即使参数是可以相互转换的也不是覆盖,或是父子关系也不是覆盖
package com.accdays.keyword;

/**
 * @author hedong
 * @version 1.0
 * @description     1)方法的重载是通过参数来,区分的,不能通过返回值,
 *                  如下代码不能通过编译,updatePerson
 *                  2)调用重载方法的原则是:先"精确"匹配,再按“自动类型转换”匹配
 * @updateRemark
 * @updateUser
 * @createDate 2019/7/10 14:55
 * @updateDate 2019/7/10 14:55
 **/
public class SameNameMethod {

    int updatePerson(){
        return 0;
    }


//    Person updatePerson(){
//        return null;
//    }

}

class A{

    void test(int x){
        System.out.println("test(int):"+ x);
    }

    void test(long x){
        System.out.println("test(long):"+ x);
    }

    void test(float x){
        System.out.println("test(float):"+ x);
    }

    void test(A x){
        System.out.println("test(float):"+ x);
    }


    public static void main(String[] args) {
        A a1 = new A();
        a1.test(5);
        // 实数 默认类型是double双精度类型 8 个字节(B,byte),不是浮点型float(4B), 使用浮点型必须需要指明f结尾
        a1.test(5.0f);

        /*
        结果:
        test(int):5
        test(float):5.0


        如果 test(int x) 被注释
        结果
        test(long):5
        test(float):5.0
        */

    }


}


class B extends A{

    /**
    * @description  覆盖后,将在子类中隐藏父类方法
    * @param x :
    * @return      void
    * @author      hedong
    * @date        2019/7/10 15:24
    **/
    @Override
    void test(int x){
        System.out.println("B.test(int):"+x);
    }

    void test(short x){
        System.out.println("B.test(int):"+x);
    }


    void test(double x){
        System.out.println("B.test(int):"+x);
    }


    void test(B x){
        System.out.println("test(float):"+ x);
    }

    /*
        编译不能通过
        再次说明,不能通过返回值,实现多态
    int test(int x){
        return x;
    }
    */

    int test(int x,int y){
        return x+y;
    }


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值