你能否解释Java多态中这段代码的深层原理?

2026-05-27 20:410阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计664个文字,预计阅读时间需要3分钟。

你能否解释Java多态中这段代码的深层原理?

Java的多态中这段代码你是否正确理解?Java的三大特性是什么?封装、继承和多态。这是每个Java程序员都应该掌握的知识点。封装就是提供接口,真正的实现类无需客户端了解,隐藏实现细节。

Java的多态中这段代码你是否真正理解

java的三大特点是什么?封装、继承和多态。这是每个Java程序员张口就来的知识点。封装就是提供接口,真正的实现类无需客户端来进行感知,隐藏了具体的实现细节。继承就不用多说了,多态是通过类的继承来体现的。

多态

回忆一下你第一次接触类继承的时候,是否用的是形状类Shape和各种各样的图形长方形Triangle类、Square正方形类。这些具体的图形类继承Shape基类

Shape shape = new Square(); shape.draw();

这段代码的含义就不用多说了,创建方形的对象,然后调用方形的draw()方法进行描绘

但是你有没有想过为什么调用的方形的draw()方法而不是Shape的draw()方法呢?

这就涉及到了一个重要的概念,后期绑定。也就是在运行的时候,方法调用机制会根据对象的类型找到对应的方法体来执行,这也就是为什么会调用正方形类的draw()方法而不是基类Shape的draw()方法。值得注意的是,被final和static修饰的方法会有后期绑定的情况。

final关键字

final在我们平时使用的时候也很重要,它表示最终的,不能再改变的意思,它可以修饰成员变量、类和方法

一般final与static联合起来使用,用来定义一个不被改变的常量,static来保证只有这个一个变量。

阅读全文

本文共计664个文字,预计阅读时间需要3分钟。

你能否解释Java多态中这段代码的深层原理?

Java的多态中这段代码你是否正确理解?Java的三大特性是什么?封装、继承和多态。这是每个Java程序员都应该掌握的知识点。封装就是提供接口,真正的实现类无需客户端了解,隐藏实现细节。

Java的多态中这段代码你是否真正理解

java的三大特点是什么?封装、继承和多态。这是每个Java程序员张口就来的知识点。封装就是提供接口,真正的实现类无需客户端来进行感知,隐藏了具体的实现细节。继承就不用多说了,多态是通过类的继承来体现的。

多态

回忆一下你第一次接触类继承的时候,是否用的是形状类Shape和各种各样的图形长方形Triangle类、Square正方形类。这些具体的图形类继承Shape基类

Shape shape = new Square(); shape.draw();

这段代码的含义就不用多说了,创建方形的对象,然后调用方形的draw()方法进行描绘

但是你有没有想过为什么调用的方形的draw()方法而不是Shape的draw()方法呢?

这就涉及到了一个重要的概念,后期绑定。也就是在运行的时候,方法调用机制会根据对象的类型找到对应的方法体来执行,这也就是为什么会调用正方形类的draw()方法而不是基类Shape的draw()方法。值得注意的是,被final和static修饰的方法会有后期绑定的情况。

final关键字

final在我们平时使用的时候也很重要,它表示最终的,不能再改变的意思,它可以修饰成员变量、类和方法

一般final与static联合起来使用,用来定义一个不被改变的常量,static来保证只有这个一个变量。

阅读全文