初识方法的覆写(重写)override

方法的重写

在子类中定义一个和父类一样的方法,叫作子类覆写(重写)了父类的方法。

public class Hi{
	public static void main(String[] args) {
		B b = new B();
		b.getinfo();
	}

}
class A{
	public void getinfo(){
		System.out.println("This is a father method");
	}
	
}
class B extends A{
	public void getinfo(){
		System.out.println("This is a son method");
	}

}
//输出:This is a son method

事实上调用的是子类的方法,也就是子类中的方法覆盖了父类的方法。先在子类中查找调用的方法,如果有则直接调用,如果没有就往父类中查找,如果还没有就继续往父类的父类中查找,如果最终都没有找到,则编译不通过。

覆写的要求
  1. 要求子类的方法名称和父类的一致,而且参数列表要一致
public class Hi{
	public static void main(String[] args) {
		B b = new B();
		b.getinfo();
	}

}
class A{
	public void getinfo(){
		System.out.println("This is a father method");
	}
	
}
class B extends A{
	public void getinfo(int a){
		System.out.println("This is a son method");
	}

}
//输出:This is a father method   只有父类中有无参函数
  • 子类中重写的方法的访问权限不能比父类的小。也就是说子类重写的方法不能拥有比父类更为严格的访问权限(正常开发访问权限都是一样的)。
  • 如果父类和子类覆写的方法的访问权限一样则返回值必须一致,如果访问权限不一样则返回值可以不一样(正常开发中返回值和访问权限都是一致的)
重写和重载的区别
  • 重载:1、发生在一个类中2、对返回值没有要求(正常都会保持一致)3、对访问权限没有要求(正常都会保持一致)4、表示重载(overloading)
  • 重写:1、发生在集成关系中(子类和父类)2、子类不能拥有比父类更小的访问权限3、如果子类和父类访问权限一致则返回值必须相同,否则可以不同3、表示重写(override)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值