`
ldwcmx
  • 浏览: 8542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

理解多态

 
阅读更多

         何谓java多态,接口是什么?

         首先从面向对象的角度理解一下接口,接口实际上是对象的一种抽象,定义某一类对象必须具有的行为和属性。

         接口可以有不同的实现类,一旦实现这个接口即必须具体的实现这个类的行为,那么这个实现类就是这个抽象类型的一个具体的类型,举个常用的小例子,比如定义一个动物接口,其中定义动物的属性包括名称、体重,定义动物接口的行为包括吃东西,奔跑等行为,那么具体的动物比如猫、狗,这些类实现动物这个接口,那么就必须具体的确定猫的名称,猫的体重,猫吃东西的行为,奔跑的行为,同理狗也必须实现想要的行为和属性。一个抽象类型的有多种不同的实现类,那么实际上就是java多态的表现了。

         接口有两个特性:关联可插入性、调用可插入性。

         上述这种面向对象的思想实际上理解起来并不困难,那么为什么要这么做呢,它这样做有什么好处呢?

         有个父类引用指向子类对象的这么一个概念,可以把接口理解为一个抽象的父类型,那么这个父类型的引用可以指向子类的的对象。在java中是如何使用的呢,看下面的小例子,

 

        class SimpleFactory{

               public Animal  animal;//动物的抽象接口

               public static   SimpleFactory  getInatance(){

                        return  new SimpleFactory();

               }

               public  void setAnimal(Animal  animal)

               {

                        this.animal = animal;

                }

               public void  do(){

                       animal.eat();

               }

               public static void main(String[] args){

                      SimpleFactory  factory = SimpleFactory.getInstance();

                       factory.setAnimal(new Dog());

                       factory.do();//这个时候会表示出狗动物吃的行为

                       factory.setAnimal(new Cat());

                       factory.do();//这个时候又会表示出猫动物吃的行为

               }

          }

 

         上述小例子说明什么问题呢,实际上猫、狗是具体的一种动物,而动物接口只是一种抽象的类型,那么这种接口类型引用可以指向实现了这个接口的类的对象,那么在实际开发中,比如,写一个servlet必须继承HttpServlet抽象类或者实现接口,容器才能管理这个servlet的生命周期。再比如抽象工厂,实际上一个工厂只能生产符合某一个标准的产品,这个标准实际上就是一种接口规范,想要生产的产品必须符合这个工厂接口规范才能进行生产,现实生活中的工厂其实也是如此。

         在大的框架下的应用更加广泛并且是离不开的 ,为什么上面的小例子不直接创建猫狗的实例,直接调用行为不就完了吗?实际上在框架设计中都是通过配置文件配置的这些类,程序通过动态加载连接初始化字节码并创建类的实例并注入到相关的类,在通过父类引用进行调用。在监听器模式中使用非常经典。

        

分享到:
评论

相关推荐

    C#第七章 深入理解多态.pdf

    C#第七章 深入理解多态.pdfC#第七章 深入理解多态.pdf C#第七章 深入理解多态.pdfC#第七章 深入理解多态.pdf C#第七章 深入理解多态.pdfC#第七章 深入理解多态.pdf

    C#用趣图理解多态(用最通俗的方法讲解).

    在C#编程语言中,面向对象编程是核心特性之一,其中包括了多态这一重要概念。多态(Polymorphism)是面向...通过扫地车与拖拉机的例子,学生可以直观地理解多态、继承、封装等概念,从而降低学习难度,提升学习效果。

    java多态理解

    理解多态首先要知道“向上转型”。我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过Cat c = new Cat();实例化一个Cat的对象,这个不难理解。但当我这样定义时:Animal a = new Cat();这...

    多态的应用

    首先,我们要理解多态的基本定义。在面向对象编程中,多态分为静态多态(编译时多态)和动态多态(运行时多态)。静态多态主要通过函数重载和运算符重载来实现,而动态多态则依靠虚函数(virtual function)和继承...

    多态代码实例

    首先,我们需要理解多态的基本定义。多态是指一个接口可以有多种不同的表现形式或行为。在面向对象编程中,多态分为静态多态(编译时多态)和动态多态(运行时多态)。静态多态主要通过函数重载和运算符重载实现,而...

    java多态的总结

    理解多态的关键在于“向上转型”和“向下转型”。向上转型是指将子类对象赋值给父类引用,这是自动进行的,无须额外操作。例如: ```java Animal animal = new Cat(); // 向上转型,猫是动物的一种 animal.speak(); ...

    理解java中的多态

    接下来,我们来看一个更具体的例子,以更好地理解多态的应用场景。 假设我们需要编写一个程序,用于管理各种不同类型的动物,这些动物都有一个共同的行为——叫声。我们可以定义一个抽象类`Animal`,然后创建多个...

    C++ 多态 实例

    这个实例将帮助初学者深入理解多态的概念,并通过实际代码来展示其工作原理。 多态分为编译时多态(静态多态)和运行时多态(动态多态)。编译时多态主要通过函数重载和运算符重载实现,而运行时多态主要依赖于虚...

    原来多态还可以这样

    对于那些想要深入理解多态或者寻找编程灵感的开发者来说,这篇博文无疑是极具价值的。 由于未提供具体的压缩包文件内容,我们无法进一步分析博主的详细讲解。但是,"duotai"这个文件名可能暗示了博主讨论的多态性...

    多态PPT文件!!!!

    在IT行业中,多态...通过学习这个PPT,开发者可以更深入地理解多态的原理,并在实际编程中灵活运用,提升代码质量。对于初学者来说,这是一个很好的起点;对于有经验的开发者,这将是一个巩固和更新知识的好机会。

    java多态小结

    ### Java多态详解 ...通过理解多态的工作原理,我们可以更灵活地设计和实现复杂系统,提高代码的复用性和可读性。掌握多态不仅有助于编写更高效、更健壮的代码,也是深入理解和运用面向对象编程思想的基础。

    java中多态的内存分析

    Java中的多态性是面向对象编程的一个核心特性,它允许我们使用父类引用指向子类对象,从而...理解多态和内存分配对于深入理解Java程序的运行机制至关重要。在实际编程中,应充分利用多态来设计高效且易于维护的系统。

    php多态和抽象类,php教程

    首先,我们来理解多态(Polymorphism)。多态是同一个接口可以有不同的实现方式,也就是说,不同的子类可以对同一方法进行不同的响应。在PHP中,多态主要体现在方法覆盖和接口实现上。方法覆盖是指子类可以重写父类...

    C#多态小案例代码分享~

    首先,我们需要理解多态的基本概念。在C#中,多态主要体现在方法的重载(Overloading)和方法的重写(Overriding)上。方法的重载是指在同一个类中定义多个同名方法,但它们的参数列表不同。而方法的重写是指子类...

    多态汽车租赁系统

    首先,我们需要理解多态的基本含义。多态允许我们使用一个接口来代表多种不同的类,使得代码更具通用性,同时降低了耦合度。在汽车租赁系统中,这可能表现为不同的车型(如经济型、豪华型、SUV等)具有不同的计价...

    多态上课源代码

    在编程领域,多态(Polymorphism...通过学习这些源代码,学员可以更深入地理解多态的概念,掌握多态的实现方式,提高面向对象编程的能力。同时,源代码实例将帮助他们将理论知识应用于实践中,提升解决实际问题的技能。

    多态的编译器实现原理

    ### 多态的编译器实现原理 #### 概述 多态是面向对象编程中的一个重要概念,它允许程序员在不指定具体类型的情况下处理不同类型的对象。...理解多态的底层实现有助于更好地设计和编写高质量的面向对象程序。

    多态机制 面向对象 实验报告

    通过这个实验,我们可以理解多态机制在实现面向对象程序设计中的重要性,特别是运算符重载如何增强代码的可读性和效率。同时,也锻炼了我们处理异常情况和确保程序健壮性的能力。在实际开发中,多态机制不仅应用于...

    java 多态的含义和例子经典讲解

    首先,我们要理解多态的定义。在Java中,多态性(Polymorphism)是指同一种行为可以有不同的表现形式,或者同一个接口可以被多种类型的对象所响应。这主要体现在方法的重载(Overloading)和方法的重写(Overriding...

Global site tag (gtag.js) - Google Analytics