韩顺平循序渐进学java 第12讲 多态
12.1 多态-四大特征之四
12.1.1 概念
所谓多态,就是指一个引用(类型)在不同情况下的多种状态。
可以这样理解:多态是指通过指向父类的指针,来调用在不同子类中实现的方法。
12.1.2 注意事项
在讲解多态的时候,我们注意到这样一个现象-类型的转换。
1、java允许父类的引用变量引用它的子类的实例(对象)
Animal animal=new Cat();
2、关于类型转换还有一些细节要求,比如子类能不能转换成父类,有什么要求等等...
多态代码演示:
1 /**日期:2016-03-04 2 * 功能:多态的演示 3 */ 4 public class Practice 5 { 6 public static void main(String []args) 7 { 8 Master master=new Master(); 9 master.feed(new Cat(), new Fish()); //调用子类 10 } 11 } 12 13 class Master //类主人 14 { 15 public void feed(Animal animal, Food food) //多态的方法,可以利用父类调用子类, 16 //这里的代码可以在增加子类的时候保持不动,很方便 17 { 18 animal.getName(); 19 food.eat(); 20 } 21 } 22 23 class Animal //父类动物 24 { 25 String name; 26 public void getName() 27 { 28 System.out.println("不知道是什么动物!"); 29 } 30 } 31 32 class Cat extends Animal //动物的子类猫 33 { 34 public void getName() 35 { 36 System.out.println("这是一只猫!"); 37 } 38 } 39 40 class Dog extends Animal //动物的子类狗 41 { 42 public void getName() 43 { 44 System.out.println("这是一只狗!"); 45 } 46 } 47 48 class Food //父类食物 49 { 50 String name; 51 public void eat() 52 { 53 System.out.println("不知道是什么食物!"); 54 } 55 } 56 57 class Fish extends Food //食物的子类鱼 58 { 59 public void eat() 60 { 61 System.out.println("猫爱吃鱼!"); 62 } 63 } 64 65 class Bone extends Food //食物的子类骨头 66 { 67 public void eat() 68 { 69 System.out.println("狗爱骨头!"); 70 } 71 }
运行结果:
1 这是一只猫! 2 猫爱吃鱼!
转载于:https://www.cnblogs.com/PistonType/p/5243875.html
韩顺平循序渐进学java 第12讲 多态相关推荐
- 韩顺平循序渐进学java 第19讲 多维数组
19.1 二维数组 高维数组在工作中用到的不多,所以只介绍二维数组. 1.定义 语法:类型 数组名[][]=new 类型[大小][大小] 比如:int a[][]=new int[2][3] 2.分析 ...
- 韩顺平循序渐进学java 第13讲 抽象类.接口
13.1抽象类 13.1.1 概念 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,称为抽象方法,用abstract来修饰该类,称为抽象类. 13.1.2 抽象类-深入讨论 抽象 ...
- 网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享
网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享 韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇 韩顺平.循序渐进学.java.从入门到精通.第1讲-内容介绍.项 ...
- 韩顺平循序渐进学java 第21.22.23.24讲 集合
21.1 引出问题 一个问题? 前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决? 请做一个公司职员薪水管理系统,要求完成如下功能: ...
- 韩顺平循序渐进学java 第10.11讲 继承.重载.覆盖
10.1 继承-四大特征之三 10.1.1 概念 继承可以解决代码复用,让编程更加接近人类思维.当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类(比如刚才的Student),在父类中定 ...
- 从零学Java(12)之算术运算符(++、- -)
作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...
- java多态ppt_轻松学Java之继承与多态PPT课件.pptx
轻松学Java之继承与多态PPT课件.pptx 第8章 继承与多态,在前面我们已经了解了类的基本使用方法.对于面向对象的程序而言,它的精华在于类的继承可以以既有的类为基础,进而派生出新的类.通过这种方 ...
- 【java学习】从头再来一遍(附韩顺平_循序渐进学Java零基础【完整笔记】)
计划任务 1.每天学习至少2个小时 2.完成教程中的课程作业 3.记录学习笔记 笔记下载-泉哥博客https://www.quange.cc/note/java/learn-java/712.html
- java12章_从零开始学Java 第12章 异常处理
第12章 异常处理 世界上没有完美的事情,一个完善的程序不可能总是会准确无误的运行,它们的运行流程都是在开发人员所预料的范围之内.但是,实际却不尽人意.在程序的运行过程中可能会因为各种原因而导致出现 ...
最新文章
- idea 快速定位到某一行的快捷键
- 南海有macbook吗?
- 配置基于Devstack的嵌套KVM虚拟化
- Failed to start mongod.service: Unit mongod.service not found
- Android技能树 — LayoutInflater Factory小结
- VR 技术加上 8K 画质! 2016 年里约奥运会亮点十足
- 详细js读取execl内容并展示
- 数据结构-第10周作业(二叉树的创建和遍历算法)
- 【Java与智能设备】 CH05_2 Intent启动内置程序
- ASP.NET Core的路由[2]:路由系统的核心对象——Router
- Android手机指纹驱动工作原理
- SpringCloud升级之路2020.0.x版-1.背景
- Qt之QTableView的简单使用(含源码+注释)
- Git与GitHub的了解与运用
- 黑鲨给电脑重装系统的详细步骤
- 外卖跑腿代驾小程序源码
- win10时间不准_【装机教程】超详细WIN10系统安装教程,官方ISO直装与PE两种方法教程...
- linux 内核调试 booting the kernel.,Linux无法启动解决 booting the kernel.
- Android Widget——GridView 学习笔记
- mysql占用服务器CPU100%的解决办法