广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是重写?_北大青鸟IT软件学校

作者:邓华发布时间:2021-01-13分类:Java技术浏览:855


导读:Java是现在比较主流的计算机编程语言之一,很多企业都用Java来开发软件。那么什么是重写呢?下面惠州北大青鸟给大家解释一下什么是重写。

Java是现在比较主流的计算机编程语言之一,很多企业都用Java来开发软件。那么什么是重写呢?下面惠州北大青鸟给大家解释一下什么是重写。

重写(Override)是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。

在面向对象原则里,重写意味着可以重写任何现有方法。实例如下:

class Animal{


    public void move(){

       System.out.println("动物可以移动");

    }

 }


 class Dog extends Animal{

    public void move(){

       System.out.println("狗可以跑和走");

    }

 }


 public class TestDog{


    public static void main(String args[]){

       Animal a = new Animal(); // Animal 对象

       Animal b = new Dog(); // Dog 对象


       a.move();// 执行 Animal 类的方法


       b.move();//执行 Dog 类的方法

    }

 }

以上实例编译运行结果如下:

动物可以移动 

狗可以跑和走

在上面的例子中可以看到,尽管 b 属于 Animal 类型,但是它运行的是 Dog 类的 move 方法。

这是由于在编译阶段,只是检查参数的引用类型。

然而在运行时,Java 虚拟机 (JVM) 指定对象的类型并且运行该对象的方法。

因此在上面的例子中,之所以能编译成功,是因为 Animal 类中存在 move 方法,然而运行时,运行的是特定对象的方法。

思考以下例子:

class Animal{


    public void move(){

       System.out.println("动物可以移动");

    }

 }


 class Dog extends Animal{


    public void move(){

       System.out.println("狗可以跑和走");

    }

    public void bark(){

       System.out.println("狗可以吠叫");

    }

 }


 public class TestDog{


    public static void main(String args[]){

       Animal a = new Animal(); // Animal 对象

       Animal b = new Dog(); // Dog 对象


       a.move();// 执行 Animal 类的方法

       b.move();//执行 Dog 类的方法

       a.bark();//执行 Animal 类的方法

    }

 }

以上实例编译运行结果如下:

TestDog.java:30: cannot find symbol

 symbol  : method bark()

 location: class Animal

                 a.bark();

                  ^ 

该程序将抛出一个编译错误,因为 a 的引用类型 Animal 没有 bark 方法。

更多Java软件开发资讯关注网站动态,或者来惠州北大青鸟新方舟校区了解一下。

java8.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava


Java技术排行
标签列表
网站分类
文章归档
最近发表