java基础----(方法的重写(Override)和重载(Overload))

重写和重载的概念

重写:是子类对父类中允许访问的的方法的重新编写
重载:是同一类中方法名相同,但返回值类型或参数有所不同的方法的重新加载

重写(Override)

重写是父类于子类的多态性(运行时多态),实质是对父类的方法重新定义。
父类中的方法不能满足现有功能的需求,就需要子类重写父类方法; (即外壳不变,核心重写)

class Animal {
    public void eat() {
        System.out.println("动物吃东西");
    }
}

class Cat extends Animal {
    // 重写父类eat()方法
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

public class Test {
    public static void main(String[] args) {
        Cat dog = new Cat ();
        Cat.eat();
    }
}
注意事项
  • 声明为final的方法不能被重写
  • 声明为static的方法可以被再次声明,但不能被重写
  • 子类和父类在同一包中时,子类可以重写父类中除了声明为private或final的其他所有方法
  • 子类和父类不在同一包中时,子类只能重写父类中声明为public或protected的非fnial方法
  • 构造方法不能被重写

重载(Overload)

方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。


public class Demo {
 
	//一个普通得方法,不带参数,无返回值
	public void add(){
		//method body
	}
	
	//重载上面的方法,并且带了一个整形参数,无返回值
	public void add(int a){
		//method body
	}
	
        //重载上面的方法,并且带了两个整型参数,返回值为int型
	public int add(int a,int b){
		//method body
		return 0;
	}
注意事项
  • 重载的方法必须改变参数列表(参数个数或类型不一样)
  • 重载的方法可以改变返回类型,访问修饰符
  • 方法能够在同一个类中或者在一个子类中被重载

重载和重写的区别

区别点重载方法重写方法
方法名相同相同
返回值类型可以修改相同
参数参数不同或参数顺序不同相同
访问修饰符权限没有要求被重写的方法权限不得比父类严格
范围同一类中在继承中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值