文档介绍:/?wk
JAVA 培训教程—Java 重写(Override)与重载(Overload)
重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值
和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定
于自己的行为。也就是说子类能够根据需要实现父类的方法。
在面向对象原则里,重写意味着可以重写任何现有方法。实例如下:
1 class Animal{
2
3 public void move(){
4 ("动物可以移动");
5 }
6 }
7
8 class Dog extends Animal{
9
10 public void move(){
11 ("狗可以跑和走");
12 }
13 }
14
15 public class TestDog{
16
17 public static void main(String args[]){
18 Animal a = new Animal(); // Animal 对象
19 Animal b = new Dog(); // Dog 对象
20
21 ();// 执行 Animal 类的方法
22
北京千锋互联科技有限公司 版权所有
/?wk
23 ();//执行 Dog 类的方法
24 }
25 }
以上实例编译运行结果如下:
1 动物可以移动
2 狗可以跑和走
在上面的例子中可以看到,尽管 b 属于 Animal 类型,但是它运行的是 Dog 类的 move 方法。
这是由于在编译阶段,只是检查参数的引用类型。
然而在运行时,Java 虚拟机(JVM)指定对象的类型并且运行该对象的方法。
因此在上面的例子中,之所以能编译成功,是因为 Animal 类中存在 move 方法,然而运行时,
运行的是特定对象的方法。
思考以下例子:
1