首页 > 其他分享 >多态

多态

时间:2022-10-14 09:37:03浏览次数:40  
标签:调用 子类 多态 可扩充性 方法 运行

多态有什么好处?
有两个好处:

应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承
派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,
多态在什么地方用?
可以用在方法的参数中和方法的返回类型中。.
(1)编译时多态(设计时多态):方法重载。
(2)运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态)
运行时多态存在的三个必要条件:
(1)要有继承(包括接口的实现);
(2)要有重写;
(3)父类引用指向子类对象。
java多态的好处:
(1)可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
(2)可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
(3)接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
(4)灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
(5)简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

标签:调用,子类,多态,可扩充性,方法,运行
From: https://www.cnblogs.com/ashuai123/p/16790523.html

相关文章

  • 动手动脑--多态小结
      通过在编程中应用多态,可以使我们的代码具有更强的适用性。当需求变化时,多态特性可以帮助我们将需要改动的地方减少到最低限度。多态编程有两种主要形式:(1)继承多态:示......
  • 继承与多态4 在实践中理解把握复杂的知识
    总结(1):子类父类拥有同名的方法时……当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是......
  • 多态
    同样的函数,传入不同的参数,得到不同的状态案例1多态常作用在继承关系上抽象类(接口)、抽象方法父类的方法是空实现,父类制定标准,子类去实现方法体是空实......
  • 重写多态oppdemo7
    publicclassPerson{publicvoidrun(){System.out.println("father");}}/*多态注意事项:1.多态是方法的多态,属性没有多态2.父类和子类有联系类型转换......
  • c语言实现继承、封装、多态
    c语言实现多态,点击进入主要内容:多态:利用设计和实现一个易于扩展的系统;c++中多态指:具有不同功能的函数可以用同一个函数名,这样可以用一个函数名调用不同内容的函数;静态多......
  • 面向对象之多态
    鸭子类型我们都知道面向对象的语言有三大特性:封装、继承和多态,在这里我浅谈一下python的多态1classPageOne:2defstatus(self):3return"按期......
  • java 多态
    /***obj-2*多态*/abstractclassFruits{abstractvoidcolour();}/***obj-2*/publicclassAppleextendsFruits{publicvoidcolour(){System......
  • day08 final关键字&面向对象——多态&抽象类、方法&向上、向下转型
    day08final关键字最终的不可更改的特点:1)修饰类,类不能被继承2)修饰方法,方法不能被重写3)修饰成员变量(变为常量),值不能修改,名字大写,声明同时给常量赋值main方法中1)修饰......
  • 动手动脑——继承和多态
    动手实验 classGrandparent{publicGrandparent(){System.out.println("GrandParentCreated.");}publicGrandparent(St......
  • 继承与多态中动手动脑
    -子类自动拥有父类声明为public和protected的成员,这就是继承特性的体现之一。-public:外界可自由访问-private:外界不可访问-protected:同一包中的子类都可以访问,另一包......