简单理解Java的重写与重载

1-重写(覆盖)
1. 参数必须要一样,且返回类型必须要兼容
2. 不能降低方法的存取权限,例如父类public方法不能重写为子类private方法
2-重载(过载)
1. 返回类型可以不同
2. 不能只改变返回类型
3. 可以更改存取权限
3-以下代码简单讨论重写与重载(不包含存储权限)
class Animal {
    boolean isWhat(int x) {
        System.out.println("动物");
        return true;
    }
}

class Dog extends Animal {
    boolean isWhat(int y) { // 重写父类方法 isWhat
        System.out.println("小狗");
        return false;
    }
}

class Cat extends Animal {
//    int isWhat(int z) { // 报错,参数相同且返回类型不兼容,既不是重写也不是重载
//        System.out.println("小猫");
//        return 1;
//    }
    int isWhat(int m,int n) { // 返回整数型且参数有所改变,即重载
        System.out.println("小猫");
        return 1;
    }
}

class Fish extends Animal {
    boolean scare(int x) { // 既不是重写也不是重载,是子类Fish特有的方法
        System.out.println("小鱼好害怕");
        return true;
    }
    boolean isWhat(byte y) { // 返回值兼容,但参数类型有所改变,即重载
        System.out.println("小鱼");
        return true;
    }
}
// 主函数
public class MonsterTestDrive {
    public static void main(String[] args) {
        Animal[] an=new Animal[4];
        an[0]=new Animal();
        an[1]=new Dog();
        an[2]=new Cat();
        an[3]=new Fish();
        for(int x=0;x<an.length;x++) {
            // 传入一个参数x,且参数类型为 int
            an[x].isWhat(x);
            // 输出结果:   动物   小狗   动物   动物
            // 说明:重载的函数在传入的参数不满足条件时,调用的还是从父类中继承的函数
        }
    }
}
4-以下代码讨论包含存储权限的重写与重载
 // 待更新...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值