`
kfaren
  • 浏览: 12050 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
最近访客 更多访客>>
社区版块
存档分类
最新评论

多态 向上转型 动态绑定

阅读更多

1.成员变量和静态方法不具有多态性,因为它们都是编译时绑定的。
  当把一个子类的引用向上转型成其父类后,调用的是父类的域和静态方法,如在子类中声明与父类private和static相同名
  的域和方法相当于新建,而且在子类中同时具体两者(且同名)

2.协变返回类型
   当复写一个方法的时候,我们要求的返回类型,方法名,方法参数都需保持一致,这样才能达到覆盖的目的。
   在JavaSE5中新增:重写方法的返回类型可以是被覆盖方法返回类型的子类。
   这是因为可以向上转型的缘故。多态的表现啊。重新的方法的返回类型是多态的........

3. 多态,转型
 
   转型的只是引用,向上转型后,是站在父类往下看,屏蔽掉了子类的扩展域,即把子类对象当作父类对象来使用。
   并且向上转型后再来个向下转型可“神奇的”恢复那些“丢失的信息”,并且java会对向下转型进行检查。
   应该说转型的是引用变量而不是对象
   应该说引用变量具有多态性
   对象在堆中是不可改变的

4. 首先应该考虑使用组合,组合更具灵活性。盲目的选择继承会强迫类进入继承层次里反倒加重了设计负担。
   问题简化,减少类的复杂度应该是指定思想。
   在使用继承的时候,尽量使用扩展减少复杂度,考虑灵活的时候才去做重写替代。

  看了半本书,都是讲类与类之间的关系,告诉我它们的关系是什么样子的,告诉我可以用什么关键字去表达,组织
  这些类。OOP编程就是设计,组织类之间的关系。现在才有点开始认识什么是OOP。

分享到:
评论

相关推荐

    java 多态 经典讲解

    在Java中,多态主要通过两种方式体现:**向上转型**和**方法重写**。 #### 二、向上类型转换(upcasting) 向上类型转换是指将子类的对象赋值给父类的引用,这一过程是自动进行的,无需显式转换。例如,在上述例子中...

    多态的练习案例

    5. **运行时多态**:在Java等动态绑定的语言中,多态的真正体现是在运行时。即使在编写代码时我们使用的是父类引用,但在运行时实际调用的是子类的重写方法。这种特性使得我们可以在设计时不必知道具体是哪个子类...

    java多态的总结

    运行时多态则基于方法的重写(Overriding),子类可以重写父类的方法,当使用父类引用指向子类对象时,如果调用了被重写的方法,那么在运行时会根据实际的对象类型来执行子类的方法,这就是动态绑定。 理解多态的...

    Java 多态中的类型转换

    - **多态方法调用**:在多态环境中,父类引用调用方法时,实际执行的是子类重写(Override)过的方法,这就是动态绑定或晚期绑定。 - **抽象类与接口**:除了普通类之间的转换,抽象类和接口也可以参与多态转换。...

    Java 面向对象三大特性之多态

    5. **向上转型与向下转型**:在Java中,子类对象可以赋值给父类引用,这被称为向上转型。这种转型在编译时即可完成,因为所有子类都继承自父类。反之,将父类引用转换为子类对象的过程称为向下转型,但需要在运行时...

    Java面向对象的3大特征之多态

    多态允许将子类对象当作父类对象来处理,这称为“向上转型”。当调用一个方法时,如果多个子类对同一个方法有不同的实现,那么实际调用哪一个子类的方法取决于运行时对象的类型。 首先,多态体现在对象的多种形态上...

    java基础_多态

    当使用父类引用指向子类对象时,调用的是子类重写后的版本,这就是动态绑定或晚期绑定。例如: ```java class Animal { void sound() { System.out.println("Animal makes a sound"); } } class Dog extends ...

    Java编程思想第08章多态.ppt

    综上所述,多态是Java编程中的重要概念,它通过向上转型和动态绑定实现了对不同对象的统一处理,提高了代码的灵活性和可扩展性。理解并熟练运用多态,对于编写高效、易于维护的面向对象程序至关重要。

    java多态的实现

    3. 多态的动态绑定特性,也称为晚期绑定或运行时绑定。这意味着在编译期间无法确定具体调用哪个方法,而是在运行时根据对象的实际类型决定。 4. 多态提高了代码的复用性和可扩展性。通过定义通用的接口或基类,可以...

    多态详解= 多态的优缺点在不同的编程场景中不同的适用性

    2. **对象间的转型问题**:多态涉及到向上转型和向下转型,向下转型(父类对象实例化子类对象)属于强制转换,如果不当使用可能会导致类型转换异常(ClassCastException)。 3. **性能开销**:虽然多态提高了代码...

    关于Java多态实例共3页.pdf.zip

    3. **向上转型与向下转型**:在Java中,子类对象可以被赋值给父类引用,这被称为向上转型。这样做的好处是可以在不关心具体类型的情况下处理对象。如果需要访问子类特有的方法或属性,需要进行向下转型,即将父类...

    详解Java多态对象的类型转换与动态绑定

    向上转型是自动进行的,即将子类对象赋值给父类引用,这在处理具有共同特性的对象时非常有用。例如,`SuperClass superObj = new SonClass();` 这一行代码就实现了向上转型,使得`superObj`可以调用`SonClass`继承自...

    Java多态案例及源码.rar

    当用父类引用指向子类对象时,调用的成员方法会根据实际的对象类型来决定执行哪个版本,这就是多态的动态绑定特性。 3. **接口与多态**:除了类继承,Java还支持接口继承,通过实现接口,类也可以表现出多态性。...

    Java 多态面试集锦进阶版20道Java多态高难度面试题及详细答案解析

    - 向上转型是将子类对象赋值给父类引用,不需要显式转换,这是自动完成的。 - 向下转型则是将父类引用转换为子类引用,需要显式转换,以访问子类特有的方法和属性。 6. **虚方法与非虚方法**: - 虚方法(默认的...

    JAVA中类的多态的理解.pdf

    Java虚拟机(JVM)运行时会根据对象的实际类型来调用相应的方法,这种机制称为动态绑定或动态方法分派。文件内容没有直接体现这一概念,但它是多态的实现基础,确保了即便是在编译时不确定对象的具体类型,运行时也...

    深入Java核心Java中多态的实现机制.pdf

    2. **向上转型(Upcasting)**:派生类对象可以通过基类引用进行引用,这是多态的基础。这种转型是自动且安全的,无需显式转换。 3. **动态绑定(Dynamic Binding)**:在Java中,方法调用是在运行时决定的,而不是...

    Java零基础-多态.md

    - 使用父类引用指向子类对象时,可以向上转型,无需显式转换。 - 向下转型(如将`Animal`转为`Cat`)需要显式转换,并且需要确保类型安全。 3. **动态绑定** - 在运行时确定调用哪个方法的过程称为动态绑定。 ...

    Java实验报告——类的继承、多态的应用

    在Java中,这通常通过向上转型实现。在实验的`StudentManager`类中,`add()`和`delete()`方法都接收`Student`类型的参数,这意味着它们可以处理任何`Student`类的子类对象。这就是多态性的体现。无论传入的是`...

    four_java继承封装和多态_four_againgpg_

    当使用父类引用指向子类对象时,调用的方法会根据实际的对象类型而非引用类型确定,这就是所谓的“向上转型”和“动态绑定”。 在"againgpg"这个上下文中,"pg"可能代表"编程"或"程序员",而"four"可能是表示这是...

Global site tag (gtag.js) - Google Analytics