多态

原创 2018年04月16日 10:57:36

一、为了实现多态操作,应在父类中声明过,在子类中重写的方法。

二、在父类中,一般情况下,为抽象类。方法为抽象方法。

1、抽象类不能实例化。、

2、子类如果不是抽象类(一般都不是,要被实例化的),则不要忘记了重写所有的抽象方法。

3、abstract修饰的抽象方法,不用写也不能写方法体。

4、private不能用来修饰抽象方法,因为还要被继承和重写呢。

5、向上转型。

     5.1 此时通过父类引用变量调用的方法是子类的方法(通过覆盖或者继承的),不是父类的方法。

     5.2 通过父类引用变量无法调用子类特有的方法,但可以通过强制转换后使用。

6、向下转型。

     向下转型即强制转换。

7、类型判断:instanceof

     判断一个对象是否属于一个类

三、多态

1、使用父类作为方法的形参

2、使用父类作为方法的返回值


四、其他

x2声明为父类对象却获得子类XXX的实例,那么x2.toString()究竟执行父类方法还是执行子类覆盖的方法呢?
这分为两种情况:
取决于子类是否覆盖父类方法.如果子类覆盖父类方法,则执行子类方法;
如果没有覆盖,则执行父类方法.
在编译时,仅仅依据对象所属的类,系统无法确定到底应该执行那个类的方法,只有运行时才能确定,因此这是运行时多态.
父类对象并不能执行所有的子类方法,只能执行那些父类中声明\子类覆盖的子类方法.


多态(Polymorphism)

 如果让你选择一项面向对(Object Oriented,后文简称OO)象最重要的或者最能表现OO特点的技术特征,会是什么?   封装(wrap)、继承(inheritance)、重载(overrid...
  • njchenyi
  • njchenyi
  • 2007-03-04 15:57:00
  • 51226

多态

对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承...
  • sinat_30753887
  • sinat_30753887
  • 2016-12-19 14:35:35
  • 180

参数多态、包含多态、过载多态和强制多态

多态分为两种:通用的多态和特定的多态。两者的区别是前者对工作的类型不加限制,允许对不同类型的值执行相同的代码;后者只对有限数量的类型有效,而且对不同类型的值可能要执行不同的代码。     通用多态又分...
  • u013046774
  • u013046774
  • 2015-11-02 09:11:15
  • 3379

909422229__编译时多态与运行时多态

最近听伙伴面试问多态的问题,于是本人加上百度与个人理解,现在上传一些个人的理解多态。不喜勿喷 多态概念:父类的引用可以指向子类的对象,且可以调用子类中覆盖父类的方法,但不可以调用子类特有的方法...
  • a909422229
  • a909422229
  • 2016-11-26 14:59:33
  • 402

静态多态和动态多态

面向对象编程的多态从绑定时间来看,可以分成静态多态和动态多态,也称为编译期多态和运行期多态。 应用形式上: 静多态是发散式的,让相同的实现代码应用于不同的场合。 动多态是收敛式的,让...
  • John_62
  • John_62
  • 2017-03-16 16:08:57
  • 849

通用多态(参数多态、包含多态)特定多态(重载多态、强制多态)

1. 通用多态 a.参数多态:模板。 b.包含多态:virtual。 2. 特定多态 a.重载多态: b.强制多态:强制类型转换。...
  • ZeroCBoy
  • ZeroCBoy
  • 2016-06-05 00:33:25
  • 733

动态多态以及多态调用过程

多态分为静态多态与动态多态。静态多态包括函数重载,泛型编程。动态是虚函数的使用。         静态多态是指编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用...
  • gmy2016wiw
  • gmy2016wiw
  • 2017-02-26 15:07:22
  • 645

多态与泛型

1.多态的理解和使用: 多态自我理解就是同种调用的不同结果表现 1) 方法的多态性:包括重载和重写(其实重写就是为了下面类之间继承的多态) 2)类之间继承的多态 重载和重写已经在之前的文章中学习过了,...
  • Jintao_Ma
  • Jintao_Ma
  • 2016-04-01 15:52:10
  • 1004

C++多态简析——静态多态与动态多态

多态:顾名思义,多态就是多种形态,也就是对不同对象发送同一个消息,不同对象会做出不同的响应。并且多态分为静态多态和动态多态。静态多态就是在系统编译期间就可以确定程序执行到这里将要执行哪个函数,例如:函...
  • stay_the_course
  • stay_the_course
  • 2017-02-16 16:01:54
  • 2391

多态的使用和概述以及弊端和好处

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • qq_28483283
  • qq_28483283
  • 2016-03-10 21:44:16
  • 3607
收藏助手
不良信息举报
您举报文章:多态
举报原因:
原因补充:

(最多只允许输入30个字)