Java中的重写

继承

为什么:在类与对象中,我们抽象的了解到类与对象相比于现实中的概念,而在此,我们可以理解为,类的更进一步的划分,比如学生还可分为,小学生,大学生;汽车可分为,中国造和外国造。此时小学生,大学生和中国汽车外国汽车分别为学生和汽车的子类,反过来说,学生和汽车就是父类。但是在子类中,要把父类声明的属性和定义的方法的代码再写一遍,这就很繁琐,所以,这时候就出现了继承
是什么:当一个子类继承(extends)了他的父类,他同时也继承了父类的属性和方法。这样,就能完成代码的重用。

重写

为什么:当父类中存在一个方法,子类可以直接调用,但是当这个方法对于子类的需求不够准确时,子类需要一个同名但更准确的方法,这时候,就出现了重写
是什么:重写即对原来已有的进行再写,这时候子类可以调用重写的方法,但这并不影响其他类调用父类原有的方法。
重写时需要注意
①当父类方法有final修饰时,该方法无法被继承和重写。
②在java中,当子类重写了一个父类方法时,在子类重写代码前,要加@Override注解。
③父类中的方法如果需要传入参数,那么子类重写后的方法参数个数及类型必须和父类相同。
④父类方法中如果有返回值,那么:若返回值为基本数据类型中的一种,则子类重写后的方法,返回值类型必须与父类相同或者比父类范围大;若返回值的类型为类,则子类返回值类型必须与父类返回值类型的类相同,或者为父类返回值类型的类的子类。
⑤重写后的方法访问权限必须比原来权限大或者相等(不能缩小访问权限)。

public class father {	
	public String name;
	public int age;
	public int phone;
		public Object read(String a) {
		System.out.println("正在看书");
	      return "父类返回值";
	}
}
public class son extends father{	
	@Override
	public String read(String  b) {
		System.out.println("子类正在看书");
		return b;
	}		
	public static void main(String[] args) {
    new son().read("子类返回值");
	new father().read("abc");		
	System.out.println(new son().read("子类返回值"));
	System.out.println(new father().read("abc"));
	}	
}
/*运行结果:
 子类正在看书
 正在看书
 子类正在看书
 子类返回值
 正在看书
 父类返回值*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值