多态:相同的行为,不同的实现。

多态分为:静态多态和动态多态。

静态多态:在编译期即确定方法的实现和效果。——使用重载实现

动态多态:运行后才能确定方法的实现和执行效果。——使用动态绑定和重写实现

动态绑定技术:引用数据类型转换、instanceof关键字

引用数据类型转换:向上转型:父类的引用指向子类的对象。

向下转型:运行起来后,确实是本类引用指向本类对象或者指向子类对象,才能成功。

instanceof关键字:用于判断运行时对象的真正类型,判断对象是否是某个类的实例。返回true/false。

用法:对象 instanceof 类名

多态的应用:多态参数:就是方法的形参是一个引用的时候,该引用兼容的任何对象都可以传递给该方法。

多态集合:就是存放不同数据类型的集合。例如: Object[]

抽象(abstract):

当abstract修饰方法的时候,该方法为抽象方法,表示类有这个方法,该方法的实现由子类完成。

当abstract修饰类的时候,该类为抽象类,抽象类不能产生对象。

注意:1、有抽象方法的类一定是抽象类

2、抽象类不一定有抽象方法(语法允许)

3、抽象类除了用abstract修饰外,其它跟普通类一样,属性,构造(给子类用),已实现的方法等等。

4、子类在继承抽象类的时候,必须重写父类全部抽象方法,否则这个类也是抽象类。

abstract与final修饰类的比较:

abstract设计父类,不能产生对象,能继承。

final设计最终类,不能被继承,能产生对象。

day14 多态与抽象的更多相关文章

  1. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  2. Java中的继承、封装、多态、抽象

    1.继承 java 和某些面向对象语言(如 c++)在实现继承的不同之处在于java只支持单继承,不支持多重继承.即java 中一个类只能继承于另一个类.我们将被继承的类称之为父类(基类),继承类称之 ...

  3. java面向对象编程--第九章 多态和抽象

    9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它 ...

  4. Java学习笔记之——多态、抽象

    1. 多态 多态:同一种事物调用同一个方法有不同的表现行为.(同一类型操作,作用于某一类对象,可以有不同的解释,产生不同的执行结果) 应用场景;当你定义一个功能性的方法可以使用多态的概念 前提:子类继 ...

  5. Java面向对象的基本概念(对象、封装、继承、多态、抽象、接口、泛型)

    对象:是一个自包含的实体,用一组可识别的特征和行为来标识. 类:具有相同的属性和功能的对象的抽象合集.(类关键字class,首字母大写). 实例:就是一个真实的对象. 实例化:创建对象的过程,关键字是 ...

  6. JAVA四大特征:封装,继承,多态,抽象

    1,封装 将对象的属性和方法组合成一个独立的整体,隐藏实现的细节,并提供对外访问的接口. 封装的好处: (1):隐藏实现细节.好比你买了台电视机,你只需要怎么使用,并不用了解其实现原理. (2):安全 ...

  7. java面向对象(封装,继承,多态,抽象,接口的定义和实现)

    1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...

  8. 关于继承、封装、多态、抽象和接口(Java)

    1.继承:    通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类). (1)继承的优点:①代码的可重用性: ②父类的属性的方 ...

  9. C#封装、多态、抽象、接口、匿名方法等学习

    1:封装 将对象进行封装,并不等于将整个对象完全包裹起来,而是根据实际需要,设置一定的访问权限,用户根据不同的权限调用对象提供的功能,在C#语言中,可以使用修饰符public.internal.pro ...

随机推荐

  1. 20162325 金立清 S2 W9 C18

    20162325 2017-2018-2 <程序设计与数据结构>第9周学习总结 教材学习内容概要 堆是一棵完全二叉树,其中每个元素大于等于其所有子结点的值. 向堆中添加一个元素的方法是,首 ...

  2. java异常处理及自定义异常的使用

    1. 异常介绍 异常机制可以提高程序的健壮性和容错性. Throwable:Throwable是java语言所有错误或异常的超类. 有两个子类Error和Exception. 1.1 编译期异常 编译 ...

  3. Mongodb 分片操作 介绍

    为什么需要分片操作?由于数据量太大,使得CPU,内存,磁盘I/O等压力过大.当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台 ...

  4. Teamcity部署.net服务“无法连接到远程服务器”解决方式

    在公司Teamcity上执行自动部署.net服务的时候,发现Teamcity在启动default.aspx的时候报错了,提示:使用“0”个参数调用“GetResponse”时发生异常:“无法连接到远程 ...

  5. node入门学习(一)

    一.安装node.js 方式很多npm,git等,新手建议从官网上直接去下载node的安装包.一键安装. 二.创建一个web服务器. const http = require('http'); htt ...

  6. 面试问题总结二(技术能力-PHP)----Ⅳ

    57.Linux 的基本命令(重点,现在多数服务器都是Linux 系统) 答:arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmid ...

  7. [转帖]华为Hi 1620 等ARM 服务器版本CPU信息.

    华为ARM服务器恐依赖党政输血续命 一旦制裁立马休克 http://www.sohu.com/a/240833070_99934330 几年前,ARM服务器被业界炒的火热,AMD.高通.Marvell ...

  8. SQL有三个类型的索引,唯一索引 不能有重复,但聚集索引,非聚集索引可以有重复

    重要: (1) SQL如果创建时候,不指定类型那么默认是非聚集索引 (2) 聚集索引和非聚集索引都可以有重复记录,唯一索引不能有重复记录. (3) 主键 默认是加了唯一约束的聚集索引,但是也可以在主键 ...

  9. ZOJ3733_Skycity

    这...水题.可惜坑了无数发. 显然对于当前的半径的园,多边形的边数越多,周长越短,面积也就越小. 一开始我是用二分去做的,事实证明也是可以的,只是我坑了. 其实没必要去用二分哦,这样来考虑这问题. ...

  10. 基于c的简易计算器二

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> ...