黑马程序员 Java多态
---------------------- android培训、java培训、期待与您交流! ----------------------
Java引用变量有两种类型:一个是编译时的类型,一个是运行时的类型。当两个类型不一致时,就产生了多态。
1 class DuoTaiDemo 2 { 3 public static void function(Cat cat1) 4 { 5 cat1.eat(); 6 } 7 public static void main(String[] args) 8 { 9 function(new Cat()); 10 } 11 } 12 abstract class Animal 13 { 14 abstract void eat(); 15 16 } 17 class Cat extends Animal 18 { 19 public void eat() 20 { 21 System.out.println("吃鱼"); 22 } 23 } 24 class Dog extends Animal 25 { 26 public void eat() 27 { 28 System.out.println("吃骨头"); 29 } 30 31 } 32 /* 33 如果我们以后想要添加一个猪(pig)的类必须再添加一个方法 34 我们可以将function方法改为 35 public static void function(Animal animal) 36 { 37 animal.eat(); 38 } 39 40 */
编写Java程序时,引用变量只能调用它编译时类型的方法,而不能调用运行时的方法。如果需要这个引用变量来调用它运行时类型的方法,则必须把它强制类型转换成运行时类型。
引用类型之间的转换只能把一个父类变量转换成子类类型。没有任何继承关系的类型,则无法进行类型转换。
1 class DuoTaiDemo2 2 { 3 public static void main(String[] args) 4 { 5 Parent p=new Child(); 6 p.show();//子类方法一 7 ((Child)p).show_1();//子类方法二 8 } 9 } 10 class Parent 11 { 12 public void show() 13 { 14 System.out.println("父类方法!"); 15 } 16 } 17 class Child extends Parent 18 { 19 public void show() 20 { 21 System.out.println("子类方法一!"); 22 } 23 public void show_1() 24 { 25 System.out.println("子类方法二"); 26 } 27 }
- instanceof运算符
考虑到进行强制转换可能出席那异常,因此进行类型转换之前应先通过instanceof运算符来判断是否可以转换成功
1 if (p instanceof Child) 2 { 3 Child c=(Child)p; 4 c.show_1(); 5 }
---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
转载于:https://www.cnblogs.com/malinkang1989/archive/2012/06/04/2534794.html
黑马程序员 Java多态相关推荐
- 黑马程序员Java教程学习笔记(三)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...
- 黑马 程序员——Java基础---流程控制
黑马程序员--Java基础---流程控制 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java提供了两种基本的流程控制结构:分支结构 ...
- 黑马 程序员——Java基础---IO(下)
黑马程序员--Java基础---IO(下) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供 ...
- 2023年黑马程序员Java学习路线图
2023年Java学科免费学习资源放送40+套课程,超过600小时的内容! 在过去的一年里,为了帮助更多人线上充电,学会更多技能,黑马程序员举办了 150+ 场免费直播公开课,新增精品视频教程 80+ ...
- 黑马程序员Java教程学习笔记(五)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...
- 黑马程序员 JAVA WEB 第三节 MYSQL 约束
这是阿锃总结的第三节黑马程序员JAVA WEB视频的MYSQL约束部分的笔记.希望可以帮助跟我一样正在学习Java web的同学们.我们一起进步. b_d 若果有同学也想学习黑马程序员Java w ...
- 黑马程序员Java零基础视频教程_下部(P52-P134)
黑马程序员Java零基础视频教程_下部(P52-P134) 1. 异常 1.1 异常体系介绍 1.2 编译时异常和运行时异常 1.3 异常在代码中的两个作用 1.4 JVM虚拟机默认处理异常的方式 1 ...
- 黑马程序员Java零基础视频教程_下部(P135-P200)
黑马程序员Java零基础视频教程_下部(P135-P200) 1 多线程 1.1 什么是多线程? 1.2 多线程的并发与并行 1.3 多线程的实现方式 1.3.1 继承Thread类的方式进行实现 1 ...
- 黑马程序员Java零基础视频教程_上部(P1-P80)
黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...
- 黑马程序员——Java字符流、字节流IO流
黑马程序员--Java字符流.字节流Io流 ---------------------- <a href="http://www.itheima.com"target=&qu ...
最新文章
- HackerRank:JavaScript 是最知名的编程语言
- vs html自动对齐,vscode esLint 保存时 自动对齐
- javascript从url中获取请求参数
- mysql 查找相似数据_局部敏感哈希LSH(Locality-Sensitive Hashing)——海量数据相似性查找技术...
- 前 k 条最短路径算法
- L2-002 链表去重 (25 point(s))
- 再创学习生命力—破与立中成长
- python制作ppt动画_天呐,还能这么玩!用 Python 生成动态 PPT
- 教程篇:《基础模块2》金蝶K3WISE15.0-注册套打教程
- STM32F4 CAN总线通信资料参考,提供源码参考快速上手CAN总线通信
- 5G工业网关下工业自动化设备远程监控系统
- Kafka消息积压案例分析
- Android 热修复原理篇及几大方案比较
- ORACLE EBS中附件功能的使用
- 数据通信系统的基本模型
- 潮人篮球不显示服务器,潮人篮球补篮技巧详解
- VC++实现的基于人眼状态的疲劳驾驶识别系统
- 可视化色码表--绘图视觉不可或缺的元素
- java判断是不是质数(素数)超短方法
- 暨南大学计算机在全国怎样的排名,暨南大学在全国排名第几
热门文章
- 关于父窗口、子窗口的操作(如关闭、打开、调用方法、刷新等等)
- 看到前一篇文章的感慨
- 关于Apache Struts2远程执行任意命令漏洞的紧急通报
- Spring MVC请求-响应流
- 带你一起来理解:函数去抖(debounce)和 函数节流(throttle)的作用和区别
- Visual Studio 添加外部工具
- oracle数据库xsb创建,在Linux下安装oracle数据库
- java web 限下载速_JavaWeb实现文件上传与下载的方法
- 计算机管理 窗口中找到 guest 用户,Guest 来宾用户不见了??
- fedora10 linux内核,自己动手编译Linux2.6.25.10内核(Fedora 7)