详述Java重写
什么是重写?为什么要重写??
改变父类的方法,为了更准确的描述子类的行为特征
此处用代码举例,为了更具体的描述儿子在打什么游戏进行了方法的重写
- 重写之前的代码
public class Father1{
public void eat (){
System.out.println("正在打游戏。");
}
}
public class Son1 extends Father1 {
}
public class Test1{
public static void main(String [] args){
Son1 son1=new Son1();
}
}
输出结果正在打游戏
- 重写之后的代码,只对Son1类进行修改
public class Son1 extends Father1 {
@override
public void play() {
System.out.print("正在打英雄联盟");
}
}
输出结果:正在打英雄联盟
重写以后的特点
可以用@override注释修饰,如上例,但若是错误的重写,则会报错
如何重写
-
重写后的访问权限要么和父类相同要么大于父类方法(public>protected>默认friendly>private),注意,父类中private修饰的方法对子类是不可见的,因此子类不能该方法进行修饰。
-
父类中final修饰的方法,子类不允许重写,但可以被继承。
3…父类中static修饰的方法,子类不允许重写,但可以被继承。
4.子类重写后的方法不能添加static修饰
5.重写后的方法,方法名必须和父类相同,参数列表除名字不做限制外其他必须相同
6.返回值
a.如果父类方法返回值为void或基本数据类型,则重写后的方法必须和父类方法保持一致
b.如果父类方法的返回值为引用类型,则重写后的方法返回值要么与父类一致,要么是父类方法返回值的子类(Object类是所有类的父类)