Java重写(Override)

一、Java重写的定义

对父类的函数进行重新定义,且重写发生在父类与子类之间,子类对从父类继承来的方法的实现细节进行修改,即不能改变方法的返回值和方法的参数列表,仅仅对方法内部的细节进行修改。

 

二、Java重写的意义

1、为了更准确的描述子类的行为特征

2、如果子类型重写了父类型的同名方法,那么只知道父类型的定义就可以调用子类型的方法了

 

三、Java重写注意事项

1、重写后子类的访问权限(public protected默认的 private)要么与父类相同,要么大于父类方法

2、父类中final修饰的方法,子类不允许重写

3、父类中static修饰的方法,子类不允许重写

4、子类重写后的方法不能添加static修饰

5、重写后的方法,子类方法名必须与父类方法名相同,参数列表除了名字不被限制以外,其他必须相同

//父类构造方法
Object eat(String name){ //Object 为返回值
}

//子类构造方法
Public String eat(String name) {
}

//调用时为字符串,需要对括号里变量加双引号
//参数列表中除了名字不被限制以外,String必须一致

6、返回值:

(1)如果父类方法返回值为void或基本数据类型,则重写后的方法必须与父类相同

public class Father{  //父类
    
    public void singing() {
    System.out.println("正在唱古典音乐");
    }
}


public class Son extends Father{  //子类

    public void singing() {
    System.out.println("正在唱嘻哈音乐");
    }
}
} 

(2)如果父类的方法返回值为引用类型,则重写之后的方法返回值要么与父类一致,要么返回值是父类的子集

//父类
Object eat(String name) {  //若为private 则子类无法继承
    System.out.println("正在用筷子吃饭......");
    return 0;
}


//子类
@Override
String eat(String name) {
    super.eat(name);//调用父类方法,有效代码第一行
    System.out.println("正在用刀叉吃饭......");
    return "";
}

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值