概念:方法的覆盖就是子类有一个方法和父类的某个方法的名称、返回类型、参数都是一样的,那么就可以说子类的这个方法覆盖了父类的这个方法。
目的:解决子类和父类方法上的不同。
注:
1、子类的方法的返回类型、名称、参数要和父类完全一样。
2、子类方法不能缩小父类方法的访问权限。(例如:父类的方法是public的
,而子类的方法写成protected,则就是缩小了访问的权限,这样是不行的)(但是如果
父类是protected,而子类写成public,则是可以的,扩大了父类的访问权限,这仍然
属于方法覆盖。)
3、父类的静态方法不能被子类写为非静态方法,当然,父类的非静态方法也不能被子类写为静态方法。
4、方法重写只针对实例方法,父类中的静态方法只能被子类隐藏、继承和重载。
5、父类中能被继承的实例方法,才能被重写。
6、子类中重写的方法不能比父类中被重写的方法抛出更多异常。
重写的具体用法
class Fow1{
*protected* void show(){
System.out.println("我是一朵花");
}
}
class Fow2 extends Fow1{
//此处就相当于是扩大了访问权限
*public* void show(){
System.out.println("我是一朵玫瑰花");
}
}