Java的方法重写
一:什么是方法的重写;
如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。
语法规则
返回值类型、方法名、参数类型及个数都要与父类继承的方法相同,才叫方法的重写
方法重写是指:子类中定义一个方法,并且这个方法的名字、返回值类型、参数个数和类型与从父类继承的方法完全相同。
方法的重写必须满足以下要求(从方法的五要素来分析):
(1)要有继承;
(2)方法名,参数列表要相同;
(3)访问修饰符不能比父类窄;
也就是说,父类的public方法在重写时,访问修饰符必须是public,因为public的范围最大,否则就不构成方法的重写,例如:对于父类protected的方法,在重写时可以用protected或public来修饰。
(4)抛出的异常不能比父类更宽泛;
(5)返回类型要比父类的小或相同。
只有满足以上五个要求才符合方法的重写
二:举一个例子;
Animal类:
package com.test; public class Animal {
public int age;
public void eat(){
System.out.println("年龄"+age+"动物是可以吃东西的");
//这里的父类只是描述动物可以吃东西
} }
Dog类:
package com.test; public class Dog extends Animal{ }
如果我们对父类的eat方法不满意,就可以重写eat方法
Dog类:
package com.test; public class Dog extends Animal{
public void eat(){
System.out.println("年龄"+age+"狗是可以吃东西的");
//这里的子类描述了狗可以吃东西
} }
主函数InitailClass类:
package com.test; public class InitailClass { public static void main(String[] args) { Dog d = new Dog();
d.age = 10;
d.eat(); } }
运行结果为:
三:方法重写和方法重载的区别;
方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!
方法重写:它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!