Java中多态转型的问题理解及多态概述
2015-11-15 16:53
323 查看
一、伪代码
class 孔子爹 { public int age = 40; public void teach() { System.out.println("讲解Java"); } } class 孔子 extends 孔子爹 { public int age = 20; public void teach() { System.out.println("讲解论语"); } public void playGame() { System.out.println("打DotA"); } }
二、故事
Java培训特别火,很多人来请孔子爹去讲课,这一天孔子爹被请走了,但是还有人来请,就剩孔子在家,价格还挺高。孔子一想,我是不是可以考虑去呢?然后就穿上爹的衣服,带上爹的眼镜,粘上爹的胡子。就开始装爹...三、问题解答及理解
//向上转型 孔子爹 k爹 = new 孔子(); //到人家那里去了 System.out.println(k爹.age); //40 k爹.teach(); //讲解论语 //k爹.playGame(); //这是儿子才能做的 //讲完了,下班回家了 //脱下爹的装备,换上自己的装备 //向下转型 孔子 k = (孔子) k爹; System.out.println(k.age); //20 k.teach(); //讲解论语 k.playGame(); //英雄联盟
附一:多态概述
某一个事物,在不同时刻表现出来的不同状态。举例:
猫可以是猫的类型。猫 m = new 猫();
同时猫也是动物的一种,也可以把猫称为动物。动物 d = new 猫();
多态的前提和体现:
1、有继承关系
2、有方法重写
3、有父类引用指向子类对象
附二:多态的分类
a:具体类多态class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
b:抽象类多态
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
c:接口多态
interface Fu {}
class Zi implements Fu {}
Fu f = new Zi();
相关文章推荐
- 通过java代码发邮件
- jdk环境变量配置
- java基础知识点二(下)
- Java [leetcode 35]Search Insert Position
- java中的final总结
- 设计模式实例学习-观察者模式
- 菜鸟级Spring AOP开发简介
- spring源码目录模块的作用
- android studio和eclipse中获取sha1码
- java 重定向和转发的区别
- Java 二叉树创建遍历
- Java的抽象类详解
- Java虚拟机工作原理详解
- 【Java】著名的单元测试框架JUnit及其生命周期使用
- eclipse插件link安装方式
- javaweb学习
- Java Web如何操作Cookie的添加修改和删除
- Java入门(三)static关键字
- Java应用程序中的内存泄漏及内存管理
- 字节与字符及java中char与数据库中char的区别