`

面向对象中的多态

阅读更多
在说多态之前,我们先看一段代码:
package JavaInterview;
class A {
        int i;
    public A() {
        i = 3;
        System.out.println(i);
    }
        void display() {
            System.out.println(i);
    }
}    
class B extends A {
    int j;
    public B() {
        j = 4;
        System.out.println(j);
    }
    void display() {
        System.out.println(j);
    }
    
}    
public class InheritanceDemo {
    public static void main(String[] args)
    {
        A obj = new B();
        obj.i=1;
        obj.j=2; // can't reach it
        obj.display();     
    }
}

分析这段程序的输出是什么。如果在eclipse中运行这段代码,是编译不过的,问题在于obj为A类型的,它不可以访问它的子类中的成员变量j,也就是obj.j = 2这一句是错误的。如果把这句删除之后输出结果是什么呢。答案为:3, 4, 4。如果和你想的一样那么你可以越过这篇文章了。如果不一样就看一下。首先当我们new B()的时候,程序首先调用的是父类的构造函数,然后在调用子类的构造函数。输出3,4。最后一个4是因为子类中重写了父类中的display()方法,obj虽然是A类型的,但是运行的时候,它调用的是子类中的方法。这其实就是多态的体现,满足三个条件,1. 继承,2. 重写, 3. 父类的引用变量指向子类的对象。
1
1
分享到:
评论

相关推荐

    讲解面向对象中多态 接口 抽象 重构 工厂模式

    本下例是讲解工厂模式 多态 接口 抽象 重构的经典下例子,结合一个尽可能简洁的实例来说明OOD、设计模式及...通过下面的代码,详细地阐述面向对象设计思想。体现了软件工程的三个主要目标:重用性、灵活性和扩展性。

    C#面向对象编程-多态习题[整理].pdf

    C#面向对象编程-多态习题[整理].pdf

    JAVA面向对象之多态.pdf

    JAVA面向对象之多态.pdf

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

    总之,多态是Java面向对象编程中的重要概念,它极大地提升了代码的灵活性和可扩展性。理解和熟练运用多态,可以帮助我们编写出更高效、更易于维护的代码。在实际开发中,应充分利用多态的特性,以适应不断变化的需求...

    2024面向对象高级多态接口HM

    多态是面向对象编程语言中的一个重要特性,它允许使用一个接口代表不同的类的行为。多态的核心在于继承与实现机制,并且依赖于方法的重写。在Java中,多态主要通过接口实现和继承机制来实现。 **多态的前提条件**:...

    动物练习.NET面向对象继承多态

    在.NET框架中,面向对象编程(Object-Oriented Programming,OOP)是一种强大的软件开发范式,它基于类和对象的概念,以及封装、继承、多态等核心特性。本实践项目名为“动物练习”,旨在通过模拟不同类型的动物来...

    Educoder题目:Java面向对象 - 封装、继承和多态答案解析.md

    Educoder题目:Java面向对象 - 封装、继承和多态答案解析

    JAVA面向对象-多态(完结)

    JAVA面向对象---多态(完结)

    计算机后端-PHP视频教程. php之面向对象29 多态(选学).wmv

    计算机后端-PHP视频教程. php之面向对象29 多态(选学).wmv

    C++面向对象之多态的实现和应用详解

    本文主要给大家介绍的是关于C++面向对象之多态的实现和应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 多态 大家应该都听过C++三大特性之一多态,那么什么多态呢?多态有什么用...

    面向对象——多态实验报告.doc

    面向对象编程是Java的核心特性之一,它通过封装、继承和多态等概念来构建复杂的软件系统。本实验报告主要探讨了多态性这一关键概念,通过设计一系列类及其子类来实现具体的功能。 首先,实验设计了一个名为`Person`...

    PHP面向对象-接口、多态

    一个类的任何子类对象都可以满足以当前类型作为类型提示的类型要求。 所有实现这个接口的类,都可以满足以接口类型作为类型提示的方法参数要求。 简单的说,一个类拥有其父类、和已实现接口的身份。

    day14-面向对象-多态&final&抽象类

    * 多态是面向对象中的一大特征 * 多态的发生前提:必须有继承或实现关系、有方法的重写、父类引用指向子类的对象 * 多态可以分为两种形式:方法多态和成员变量多态 Java 中的 final 关键字: * final 关键字可以...

    新技术培训 培训讲义8_面向对象之多态.doc

    在面向对象编程中,多态指的是一个对象可以表现出多种形态,这意味着一个类的对象不仅可以表现为它本身,还可以表现为它的父类或者它实现的接口类型。通过这种方式,我们可以编写更加通用的代码,而不必关心具体对象...

    Java 面向对象(继承、多态).ppt

    面向对象的概念 掌握类的继承、方法重写、super关键字的使用、final关键字 熟悉面向对象继承和多态的概念

    实验-面向对象编程多态( java).docx

    面向对象编程中的多态性是Java等面向对象语言的核心特性之一。通过本次实验,我们可以深入理解多态的概念以及它在实际编程中的应用。实验的主要目标是建立一个抽象类`Shape`,并创建两个子类`J_Circle`和`J_Square`...

    面向对象练习之三--多态 (抽象方法和虚方法)

    在面向对象编程中,抽象方法和虚方法常常一起出现,它们共同构成了多态的基础。抽象类通常包含抽象方法,定义了一个通用的接口,而虚方法则允许子类对这些接口进行具体实现。通过这样的设计,我们可以创建出强大的...

    java——基础商城小项目 包含面向对象 多态 接口

    【标题】"java——基础商城小项目 包含面向对象 多态 接口" 提供了关于这个Java项目的三个核心概念:面向对象编程、多态性和接口。这些是Java编程语言中的基本但至关重要的特性。 面向对象编程(Object-Oriented ...

Global site tag (gtag.js) - Google Analytics