1. 多态数组

当创建多个不同的子类对象, 而又想统一处理这批对象时, 就可以使用多态数组.

Person[] arr = {new Student(), new Teacher()};

2. 多态参数

在设计方法时, 有的方法内部需要用到另外的类的对象, 但是在设计方法时, 又不需要关心究竟是哪个对象, 只关心这些实参对象都是某个类型的, 此时, 方法的参数的类型就可以写成父类类型的参数,这样的方法的参数就是多态参数.

public void test(Person p) { // 这个方法的参数p的具体类型未知

System.out.println(p.say());

}

main() {

test(new Chinese()); // 在实际调用多态参数方法时, 可以传入任意本类或子类类型的对象

test(new American());

}

x instanceof A:检验x是否为类A的对象,返回值为boolean型。

要求x所属的类与类A必须是子类和父类的关系,否则编译错误。

如果x属于类A的子类B,x instanceof A值也为true。

public class Person extends Object {…}

public class Student extends Person {…}

public class Graduate extends Person {…}

——————————————————————-

public void method1(Person e) {

if (e instanceof Person)

//处理Person类及其子类对象

if (e instanceof Student)

//处理Student类及其子类对象

if (e instanceof Graduate)

//处理Graduate类及其子类对象

}

对象类型转换 (Casting )

基本数据类型的Casting:

自动类型转换:小的数据类型可以自动转换成大的数据类型

如long g=20;           double d=12.0f

强制类型转换:可以把大的数据类型强制转换(casting)成小的数据类型

如 float f=(float)12.0;   int a=(int)1200L

对Java对象的强制类型转换称为造型

从子类到父类的类型可以自动进行

从父类到子类的类型转换必须通过造型(强制类型转换)实现

无继承关系的引用类型间的转换是非法的

在造型前可以使用instanceof操作符测试一个对象的类型

上一篇: Java培训技术之虚拟方法调用(Virtual Method Invocation)

下一篇: Python开发培训能学会吗

java多态的应用场景_Java培训SE基础之多态的应用场景相关推荐

  1. java 搭建企业应用框架_java培训一般要学多久

    "Java就业薪资高薪,通过体系性的培训年收入就是20-30万",最近在接待学员的过程中发现很多机构打着高薪招募学员,其实Java培训出来的薪资有没有那么多高,肯定是有部分学员能达 ...

  2. java适配器模式 场景_Java设计模式之《适配器模式》及应用场景

    适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在. 适配器模式有两种:类适配器.对象适配器.接口适配器 前二者在实现 ...

  3. java中的Attribute类_java培训技术ModelAttribute注解修饰POJO类型的入参

    @RequestMapping("/testModelAttribute") //public String testModelAttribute(User user){ publ ...

  4. java入门从哪下手_java新手0基础如何最快速的入门

    一口不吃了一个胖子,心急吃不了热豆腐.当你点开这篇文这句话送给你. 零基础学Java只需办法适合,仍然有机遇进修好Java编程.初学Java就像交同伙从生疏到认识再到铁杆错误平生相伴,跟着进修的深刻, ...

  5. java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)

    Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...

  6. java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)

    Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包.从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JC ...

  7. java线程池存在时间_Java线程池基础

    目录: 一.线程池概述 1.线程池类 目前线程池类一般有两个,一个来自于Spring,一个来自于JDK: 来自Spring的线程池:org.springframework.scheduling.con ...

  8. java编译命令带参数_java编译命令基础知识点

    我们在对计算机下达指令时,人类的语言它是不能够明白,需要通过编译的时候翻译成计算机能听懂的语言.编译过程中会调用javac命令,这点大家可能接触的不多,毕竟是是计算机程序内部运行时的操作.下面我们就编 ...

  9. java睡眠后继续执行_Java高级编程基础:如何使用线程的休眠,中断和连接

    线程休眠和中断 我们知道了在编程过程中创建线程,并启动以后,线程会交由操作系统来管理调度执行一个我们指定的计算任务. 如果没有其它异常情况出现的话,它会持续运行直到我们实现的run()方法执行完毕为止 ...

最新文章

  1. 使用poi进行excel导入并解析插入数据库
  2. 计算机安全设,默认的安全性还不够!这几个保护计算机的步骤要设置好
  3. (step6.3.2)hdu 1068(Girls and Boys——二分图的最大独立集)
  4. 问题:从键盘读取特定类型的数据(使用Scanner读取int类型)
  5. 这个副业清单,总有一个适合你!
  6. 理解数据库与数据模型的概念
  7. python中闭包的作用_Python闭包及其作用域
  8. 分水岭算法(Watershed Algorithm)
  9. python wps linux_体验WPS for Linux
  10. 江苏省×××局数据复制软件招标
  11. CyanogenMod - All the source code for CyanogenMod
  12. android 时区表以及设置系统时区
  13. 苹果iOS第三方应用商店,App store没有的这都有!发烧友赶紧来!
  14. 北京最新道路货物运输驾驶员考试真题题库及答案
  15. Excel功能及实现
  16. iOS录屏和截屏监听(以及出现的bug)
  17. 并行计算中的BSP模型
  18. 喜欢听音乐的小伙伴看过来
  19. 【Linux】Ubuntu20网络频繁掉线解决
  20. Java 国王放麦子

热门文章

  1. java web 程序---购物车项目内容:
  2. 关于VM热备份的三种方法
  3. silverlight实现2D人物动画
  4. Velocity配置优化
  5. linux shell 脚本嵌套调用 获取脚本自身文件名
  6. linux curl https报错: curl: (35) SSL connect error
  7. golang sleep函数 休眠延时
  8. python3 字符串操作总结
  9. linux dig 命令使用方法
  10. smarty foreach函数