0004方法的重写Override

编程入门 行业动态 更新时间:2024-10-28 13:28:45

一、概述

/*

方法的重写:Override
*当子类继承了父类的方法时,但是父类的方法体不适用于子类了,那么子类可以选择进行“重写overwrite”。方法 = 方法签名/方法头 + 方法体重写有要求:(1)方法名:必须和父类被重写的方法名“相同”(2)形参列表:必须和父类被重写的形参列表“相同”(3)返回值类型:基本数据类型和void:要求与父类被重写的方法的返回值类型“相同”引用数据类型:要求子类重写的方法的返回值类型 <= 父类被重写的方法的返回值类型例如:子类方法的返回值类型是Student,父类被重写方法的返回值类型是Student子类方法的返回值类型是Student,父类被重写方法的返回值类型是Person子类方法的返回值类型是Person,父类被重写方法的返回值类型是Student(错误的)(4)修饰符①权限修饰符:子类重写的方法的权限修饰符的可见性范围 >= 父类被重写方法的权限修饰符的可见性范围例如:子类方法的权限修饰符是public,父类被重写方法的权限修饰符public子类方法的权限修饰符是public,父类被重写方法的权限修饰符protected②其他修饰符(后面讲)

*/
啥也不说了,贴代码,便能好好体会到了(坏笑)

package .atguigu.test02;/** 方法的重写:Override*当子类继承了父类的方法时,但是父类的方法体不适用于子类了,那么子类可以选择进行“重写overwrite”。* 方法 = 方法签名/方法头 + 方法体* 重写有要求:* (1)方法名:必须和父类被重写的方法名“相同”* (2)形参列表:必须和父类被重写的形参列表“相同”* (3)返回值类型:*	基本数据类型和void:要求与父类被重写的方法的返回值类型“相同”*  引用数据类型:要求子类重写的方法的返回值类型 <= 父类被重写的方法的返回值类型*   		例如:*   			子类方法的返回值类型是Student,父类被重写方法的返回值类型是Student*   			子类方法的返回值类型是Student,父类被重写方法的返回值类型是Person*   			子类方法的返回值类型是Person,父类被重写方法的返回值类型是Student(错误的)* (4)修饰符* ①权限修饰符:子类重写的方法的权限修饰符的可见性范围 >= 父类被重写方法的权限修饰符的可见性范围* 			例如:* 				子类方法的权限修饰符是public,父类被重写方法的权限修饰符public* 				子类方法的权限修饰符是public,父类被重写方法的权限修饰符protected* ②其他修饰符(后面讲)* */
public class TestOverride {public static void main(String[] args) {Manager m= new Manager();m.setName("张无忌");System.out.println(m.getSalary());//第2个例子Manager m1= new Manager("张无忌2",8000,2000);System.out.println(m1.getInfo());}
}
//员工
class Employee{//属性列表private String name;private double salary;//构造器列表public Employee(){}public Employee(String name,double salary){this.name=name;this.salary=salary;}//get/setpublic String getName(){return this.name;}public void setName(String name){this.name=name;}//------------------------public double getSalary(){return this.salary;}public void setSalary(double salary){this.salary=salary;}//方法public String getInfo(){return "姓名:"+name+" ,薪资:"+salary;}
}
//经理
class Manager extends Employee{//子类的属性列表private double bonus;	//奖金//子类的构造器列表public Manager() {}public Manager(String name,double salary,double bonus) {super(name,salary);//如果这里不写super(name,salary)的话,它就会报错,找不到父类的有参构造this.bonus = bonus;}//get/setpublic double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}//重点来了:重写父类的getInfo()//重写父类的getInfo()public String getInfo(){//由于父类的name和salary属性是私有的,不能在子类中直接使用的return "姓名:"+getName()+" 薪资:"+getSalary()+" 奖金:"+ bonus;}
}# 二、总结## 整理重写的要求:
(1)方法名:相同
(2)形参列表:相同
(3)返回值类型:基本数据类型与void:相同引用数据类型:<=(4)修饰符权限修饰符:>=其他修饰符:不能是final,private,static
(5)抛出的异常类型:<=

更多推荐

重写,方法,Override

本文发布于:2023-05-30 09:19:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/365349.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重写   方法   Override

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!