`
447214075
  • 浏览: 79724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java使用多态时对于属性和方法访问的理解

    博客分类:
  • java
 
阅读更多
A a = new B();
对象a调用属性时只能调用A类的属性,即使B中有与A相同的属性也是调用A的属性;
在调用方法时只能带用A中方法,但是如果B对A中方法进行了重写,则运行时会调用B中方法。

在new B时,在new出来的对象中有父类A的属性,只是被隐藏了(通过getFields()方法可以看到),这时通过a对象调用属性时就会调到隐藏的真正的A类的属性。
jvm将A和B的类信息及A、B中的方法信息加载到了Method区,通过a.getClass()获得的是B的类信息,B的类信息中将A的类信息(这里主要指方法)全部继承到了B中,如果B中存在与A中某方法完全一致的方法,此时B中的这个方法将A方法覆盖,不管用A对象还B对象都会访问到覆盖后的方法,而A a = new B()中a对象为A的对象,所以此时只能范围到A中声明的方法,对于a对象中存在的但属于B的方法无权访问。
分享到:
评论

相关推荐

    Java-多态--学习笔记.docx

    1. **多态应用**:多态性允许我们使用一个类型的引用指向它的子类型实例,这样在调用相同的方法时,会根据实际的对象类型执行不同的操作。这种现象在程序设计中非常常见,例如在处理不同类型的动物时,虽然都具有...

    对于多态的理解

    ### 对于Java中多态的理解 #### 多态的基本概念 多态是面向对象编程语言中的一个重要特性,它使得程序可以在运行时确定具体的操作对象及其行为。简而言之,多态意味着一个接口可以有多种不同的实现,或者一个实体...

    Java 多态中的类型转换

    本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...

    java 三大特性--封装、继承和多态理解

    Java编程语言以其强大的功能和广泛的应用而闻名,其中三大特性——封装、继承和多态是其核心概念,对于理解和编写高效、可维护的代码至关重要。 **封装**是面向对象编程的基础,它涉及到将数据(属性)和操作这些...

    详解java接口、继承和多态

    ### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以...理解和熟练掌握这些概念对于成为一名优秀的Java开发者至关重要。

    java继承与多态

    继承时,子类可以访问父类中`public`和`protected`级别的成员变量和方法,以及父类所在包内的`default`级别的成员。 **2.4 构造器与继承** 构造器不被继承。当子类继承父类时,需要通过显式调用父类的构造器来初始...

    java继承、多态的简单程序.zip

    通过阅读和实践这些代码,可以更好地理解和应用Java的继承和多态特性。 总的来说,Java的继承和多态性是构建复杂、可扩展软件系统的基础。这个压缩包中的简单程序,结合博客资料,为初学者提供了一个很好的学习起点...

    java学习资料-Java继承和多态

    Java 继承和多态是面向对象编程中的核心概念,它们是Java中实现代码复用和灵活设计的关键机制。在Java中,继承允许一个类(子类)从另一个类(父类)继承特性,而多态则使得不同类型的对象能够共享相同的操作。 ###...

    java多态的实现

    在Java编程语言中,多态(Polymorphism)是面向对象设计的重要特性之一,它允许我们使用一个接口来表示多种不同的类型。...理解和掌握多态的原理与应用,对于提升编程技能和编写高质量的Java应用程序至关重要。

    《java面向对象程序设计-继承和多态》教案.doc

    面向对象编程是Java的核心特性,本教程主要涵盖了三个关键概念:封装、继承和多态,以及相关的访问修饰符和方法修饰符。 封装是面向对象编程的基础,它涉及到将数据(属性)和操作这些数据的方法(行为)组合在一个...

    java 接口 类 继承 多态的简单实例

    多态分为编译时多态(方法的重载,Overload)和运行时多态(方法的重写,Override)。 - **重载(Overload)**:是指在同一个类中可以有多个同名方法,但参数列表必须不同(参数个数、类型或顺序),这使得我们可以...

    【IT十八掌徐培成】Java基础第06天-03.多态-类多态-接口多态-同名属性问题.zip

    当父类和子类中都有相同名称的属性时,如何正确地访问这些属性就会变得复杂。在Java中,如果子类对象被当作父类对象处理,那么通过父类引用访问的属性将是父类中的属性,而不是子类中重名的属性,这就是所谓的向上...

    深入理解Java多态.pptx.pptx

    Java多态是面向对象编程的核心特性之一,它允许我们使用一个通用的接口来处理不同类型的对象,从而实现代码的灵活性和可扩展性。在Java中,多态主要通过三种方式实现:继承、接口和方法的重写。 1. **继承与多态**...

    Java 学习课件,继承和多态

    在Java中,多态主要体现在继承和接口的使用上。 - **实现方式**: - **方法重写**:子类重写父类的方法,以改变父类的行为。 - **接口实现**:一个类可以通过实现多个接口表现出多种行为。 - **优势**: - **...

    JAVA封装继承与多态PPT教案学习.pptx

    JAVA 封装继承与多态是面向对象程序设计语言中三个非常重要的概念,正确理解和应用这些概念是编写高质量软件的前提。 在实际应用中,封装、继承和多态三个概念都是相互关联、相互影响的。正确地使用这些概念可以...

    继承和多态的相关Java源码下载

    Java是一种广泛使用的面向对象的编程语言,其核心概念包括封装、继承和多态。在Java中,继承允许一个类(子类)从另一个类(父类)中获取属性和方法,从而实现代码重用和扩展。多态则是面向对象编程中的另一个关键...

    Java封装继承多态实例以及文件流操作

    在Java中,我们经常使用getter和setter方法来实现数据的封装,这样可以确保数据的安全性和一致性。 其次,**继承**允许一个类(子类)继承另一个类(父类)的属性和方法。这有助于代码重用和构建层次结构的类系统。...

    java实验报告(2)-多态和继承

    - **体会**:学生可能会分享在理解和应用多态和继承时的心得体会,比如如何通过这些概念理解面向对象编程的本质,以及在实际项目中如何有效地利用它们。 - **程序简介**:实验中创建的程序可能涉及到一个简单的类...

    Java基础多态PPT学习教案.pptx

    【Java基础多态】在Java编程中,多态性(Polymorphism)是面向对象三大特性之一,它允许我们使用一个引用类型来调用不同的实现,使得代码更加灵活且易于扩展。多态能够提高代码的复用性,降低耦合度,是软件设计中的...

Global site tag (gtag.js) - Google Analytics