方法重载和方法重写的区别

方法重载

方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。

参数不同主要指三个方面:

  1. 数量不同(0,1,2…)
  2. 类型不同
  3. 顺序不同
public Dog(){//无参构造方法

    }
    public Dog(int a){//一个参数的构造方法
        age = a;
    }
    public Dog(int a,String n){//两个参数的构造方法
        age = a;
        name = n;
    }
    public Dog(String n,int a){//两个参数但是顺序不同的情况
        age = a;
        name = n;
    }
    public Dog(String n,String c){//两个参数但是数据类型不同的情况
        name = n;
        colour = c;
    }
    public Dog(int a,String n,String c){//三个参数的构造方法
        age = a;
        name = n;
        colour = c;
    }

在调用时会根据不同的参数表选择对应的方法。

        Dog xh = new Dog(3,"小黑");
        System.out.println(xh.name+"  "+xh.age+"岁");
        Dog xm = new Dog("小明",3);
        System.out.println(xm.name+"  "+xm.age+"岁");

注意:方法重载跟方法的返回值类型没有任何关系

方法重写

应用场景 :

​ 当父类的方法实现不能满足子类需求时,可以对方法进行重写( override)

在子类中可以根据需要对从基类中继承来的方法进行重写。

方法重写规则

​ • 方法名相同、参数列表相同;

​ • 返回值类型相同;

​ • 访问权限不能小于父类权限;

注意:构造方法,静态方法不能重写,成员变量不存在重写

//构造方法,静态方法不能被重写,  属性也不存在重写,
        //当父类中实现方式(代码) 不能满足子类中的需求,可以在子类中将父类中的方法重写(方法覆盖 覆写)
        @Override//java中的注解标签  说明 此方法是从父类中重写过来的  在编译期间就会对语法进行校验
        void eat() {
            System.out.println("ssssss");//子类自己的实现方式
            //super.eat();//调用父类的实现
            super.sleep();
            System.out.println("ssssss");
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值