多态

对象的多种形态 继承是实现多态的基础
1,引用多态
   父类的引用可以指向本类的对象
   父类的引用可以指向子类的对象
2,方法多态
   创建本类对象时,调用的方法为本类方法
   创建子类对象时,调用的方法为子类重写的方法或者继承的方法
 
引用类型转换
1,向上类型转换(隐式,自动类型转换),是小类型到大类型的转换
2,向下类型转换(强制类型转换),是大类型到小类型的转换
就像茶杯和茶壶的关系一样
使用instanceof运算符,避免类型转换的安全性
 
1 //属于向上类型转换,是安全的
2 Animal animal = new Dog()
3 if(animal instanceof Cat)
4     Cat cat=(Cat)animal;
5 else
6     System.out.println("无法进行类型转换");
  • 什么是抽象类?

    • 包含抽象方法的类是抽象类
    • 抽象类中可以包含普通的方法,也可以没有抽象方法
    • 抽象类不能直接创建,可以定义引用变量
    • 抽象方法没有函数体,以分号结束
    • public abstract class Telephone{ public abstract sendMessage();}
  • 什么是接口?

    • 接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成
    • interface前面若没有abstract,则系统会自动加上
    • 接口的修饰符一般使用public, 不能使用protected和private来修饰
    • 接口中的属性是常量,即使定义时不添加,系统会自动加上public static final
    • 接口中的方法只能是抽象方法,即使定义时不添加,系统会自动加上public abstract
    • 注意在接口命名的时候,可以在类名前面加上一个I,表示这是接口
    • 接口的引用可以直接指向实现接口的类的对象

Java面向对象的三大特性 多态的更多相关文章

  1. java面向对象的三大特性——多态

    多态 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底 ...

  2. Java面向对象编程三大特性 --- 多态

    多态特性: 子类Child继承父类Father,我们可以编写一个指向子类的父类类型引用,该引用既可以处理父类Father对象,也可以处理子类Child对象,当相同的消息发送给子类或者父类对象时,该对象 ...

  3. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  4. 谈谈Java面向对象的三大特性

    Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

  5. Java学习笔记十八:Java面向对象的三大特性之封装

    Java面向对象的三大特性之封装 一:面向对象的三大特性: 封装 继承 多态   二:封装的概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访 ...

  6. Java学习笔记二十一:Java面向对象的三大特性之继承

    Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...

  7. java面向对象的三大特性

    1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③继承来的属性 ...

  8. 3.java面向对象编程三大特性之多态

    面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对类的外部而言它的内部实现细节是隐藏的,暴露给外界的只是它的实现方法. ...

  9. Java 面向对象的三大特性之一 继承

    继承: Java是继承的三大特性之一,是Java中实现代码重用的手段之一 将重复的代码抽取到父类中继承的有点或者现实 优点: 方便修改代码 减少代码量 Java中继承的语法: 修饰符 SubClass ...

随机推荐

  1. cocos2d-x 3.9 android studio项目命令行打包

    进入创建的项目的 proj.android-studio目录 cocos run/compile -p android --android-studio 这样就可以打包了

  2. HDU 4089 Activation:概率dp + 迭代【手动消元】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4089 题意: 有n个人在排队激活游戏,Tomato排在第m个. 每次队列中的第一个人去激活游戏,有可能 ...

  3. dos命令行中不同磁盘的调转

    windows下,dos中不同磁盘的跳转: 直接 盘符+回车: 如跳转到d盘: D:回车即可 : Microsoft Windows [版本 10.0.10586] (c) 2015 Microsof ...

  4. Unity3D之Mesh(七)绘制长方体

    前言: 从现在开始,终于感觉进入一点点正题了!动态创建三维立体模型mesh!依然从简单入手:长方体. 一.基本思路 由于是创建长方体mesh,由之前的研究得知,两个数据必须要有,即:顶点的数据:ver ...

  5. php导出内容到txt并自动弹出下载文件

    php将内容保存到txt文件中,并自动弹出下载文件窗口的方法: $id=array('我爱学习网http://www.5ixuexiwang.com','汇享在线工具箱http://tool.huix ...

  6. Opencv - Android 配置安装

    1.道具们: windows 7 64位 OpenCV-2.4.6-android-sdk-r2 ( http://sourceforge.net/projects/opencvlibrary/fil ...

  7. FFmpeg 基本用法

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

  8. 幻想乡三连A:五颜六色的幻想乡

    非常直接地构造 由于答案与生成树计数有关,所以一定要使用矩阵树定理,但这样就不能限制每种颜色的便使用的数量 我们构造$N^2$个关于$Ans_{x,y}$的方程,枚举将红色的边拆成$x$条,将蓝色的边 ...

  9. Agc_006 E Rotate 3x3

    题目大意 给定一个$3\times N$的方阵,每个位置的数恰好是每一个$[1,3\times N]$中的数. 初始时,每个位置$[x,y]$填的是$3(y-1)+x,(1\leq x\leq N,1 ...

  10. 《Javascript高级程序设计》阅读记录(一):第二、三章

    <Javascript高级程序设计>阅读记录(一) 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释 ...