重载和重写

方法签名

方法签名=方法名+参数列表
一个类中不允许出现两个方法签名完全相同的方法

重载overload

发生在同一类中,方法名相同,参数列表不同,称为方法的重载
依据参数类型来绑定对应的重载方法

		protected void delete(int x,int y) {}
		protected void delete(int a,int b) {}			//编译错误,参数列表的参数类型相同
		protected void delete(int x) {}				//编译通过,参数列表不同
		protected void delete(int x,String s) {}		//编译通过,参数列表类型不同
		protected void delete(String s,int x) {}		//编译通过,参数列表类型不同,虽然与上一条参数类型相同但顺序不同
		protected int delete(int x,int y) {return 1;}	//编译错误,参数列表的参数类型相同,方法签名未涉及到返回值类型							
		public String delete(int x,String y) {return y;}//编译通过,证明与返回类型无关	
		void delete(int x,String s)					//编译通过
		public void delete(int x,String s){}		//编译通过,结合上一条证明与修饰词无关			

方法重写overwrite

方法的覆盖----子类重写父类方法

  1. 发生在父子类中,方法签名相同(方法名相同,参数列表也相同),方法体不同

  2. 重写的方法被调用时,看new出来的对象是谁(new谁就调用谁的)

  3. 重写需遵循"两同两小一大"原则

    3.1)方法名相同+参数列表相同

    3.2)子类方法的返回值类型要小于或等于父类方法的返回值类型

    	注:若父类方法是void,则子类重写方法必须也是void
    	
    		若父类方法是基本类型,则子类重写方法返回值必须相同
    		
    		若父类方法是引用类型,则子类重写方法返回值小于或等于父类
    		
    		子类方法所抛出的异常类型要小于或等于父类方法抛出的异常
    

    3.3)子类方法的访问权限要大于或等于父类方法的访问权限

    ★注意:静态方法不存在重写与应用类型无关;

//父类
public class A {
	
	protected void name(String name) {
		System.out.println("父类");
		
	}
}
//子类
public class B extends A{

	@Override
	protected void name(String name) {
	
	}
	
	//名字相同,参数列表不同
	@Override
	protected void name() {
	
	}
	
	//参数列表相同,名字不同
	@Override
	protected void name1(String name) {
		
	}

	//父类方法中返回值为void,所以重写方法也一定是void
	@Override
	protected int name(String name) {
		
		return 1;
	
	}

	//父类的访问权限为protected,子类的访问权限要大于父类,即public,此处为默认
	//public>protected>默认>private
	//所以private也不对只有public正确
	@Override
	void name(String name) {
		
	}
}

重载和重写的区别

重载重写
发生在同一个类中发生在父子类中(继承关系)
方法名相同,参数列表不同,方法体不同方法名相同,参数列表相同,方法体不同
与返回类型无关与返回类型有关
遵循的是"编译期绑定",依据参数来绑定方法遵循的是"运行期绑定",依据对象类型来调用方法
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值