Java详解重写

1.什么是重写:
重写就是重新改写,对父类方法进行改写或改造的现象称为方法重写或方法覆盖,例如

public void eat() {
			System.out.println("用筷子吃饭");
		}
@Override
		public void eat() {
			System.out.println("用刀叉吃饭");
		}
	    public static void main(String args []) {
			Student1 stu = new Student1();
			
			stu.eat();
		}

输出结果
在这里插入图片描述
2.为什么重写:
子类可以继承父类,但是有时子类需继承父类以适应新的要求或者说子类继承父类中的方法已经不能准确的描述子类自身的行为了,所以重写,让子类在父类中继承更灵活。

3.怎么样重写:
(1)如果父类中方法被final修饰,则此方法无法被重写。
(2)@Override注解可以判断当前方法是否重写了父类的某个方法,如果在方法上加上该注解没有出错,则说明重写了父类方法,否则没有重写父类方法。(标注一个方法为重写的方法,就在方法前一行写@Override)
(3)在子类中有重写方法,如果想调用父类中的方法,
1)在非静态代码块或方法中使用super
2)在静态代码块中或方法中,必须新创建父类对象,与继承相似。

public void eat() {
			System.out.println("用筷子吃饭");
		}
	@Override
		public void eat() {
			System.out.println("用刀叉吃饭");
		}
		
		
		
		{
			super.eat();
		}
		
		public static void main(String args []) {
			Student1 stu = new Student1();
			
			stu.eat();
		}

在这里插入图片描述
(4)重写要求:
1)方法名相同,参数列表相同(个数和参数列表相同,参数名字可以不同)
2)public protected friendly(如果没有写的话,默认是这个) private 重写后的方法的访问权限只能比父类的大或者相同。
3)返回值:如果父类方法的返回值为void或基本数据类型(byte int short long char double float boolean),则子类重写后的返回值类型必须父类相同。
如果父类返回值为引用类型,则子类重写后的返回值类型要么相同,要么是父类方法返回值的子类,不能是基本数据类型。
比如:Object 如果是父类的返回值,那么,子类的返回值可以是String,不能是基本数据类型。
4)父类中static方法不能被重写
5)子类重写后的方法不能加static
( 总之 子类和父类在重写中不能出现static)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值