生动理解多态中向上与向下转型
2018-12-14 08:36:21来源:博客园 阅读 ()
代码如下:
1 package cn.finall.com; 2 3 class Fu{ 4 public void show() { 5 System.out.println("显示父类"); 6 } 7 } 8 9 class Zi extends Fu{ 10 public void show() { 11 System.out.println("显示子类"); 12 } 13 14 public void method() { 15 System.out.println("显示子方法"); 16 } 17 18 } 19 20 public class DemoTest { 21 public static void main(String[] args) { 22 Fu f = new Zi(); //这个Zi 是子类型,现在外界看到的是 Fu,这个就叫向上转型 23 f.show(); //引用了子对象,所以优先显示子方法 24 Zi z = (Zi)f; //本来外界之前看到是的Fu类型,现在又被Zi强制转换引用向外体现,这就叫作向下转型,这样一来就可以使用Zi类的特有方法 25 z.show(); //这是父类和子类都有的方法,子类会重写父类方法,所以看到的结果就是子类中的结果 26 z.method(); //这个是子类特有的方法,通过上面的向下转型就间接的可以直接访问子类的特有方法 27 28 } 29 30 } 31 32 运行结果如下: 33 显示子类 34 显示子类 35 显示子方法
简单说明:多态的一个缺陷是不能直接访问子类中的特有方法(特有方法就是指:子类有的方法但父类没有)
多态的向上与向下转型,必须要同时满足下面几个条件:
1、必须有继承,继承是多态的基础
2、必须是
父类 父变量名 = new 子类名;
子类名 子变量名 = (子类名)父变量名;
通俗理解上面这两句:就是相当于是把一个苹果(子类)从左口袋通过手(父类)放到右口袋,苹果并没有变。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 深入理解:设计模式中的七大设计原则 2020-06-07
- 通俗理解spring源码(六)—— 默认标签(import、alias、be 2020-06-07
- 一文带你深入理解JVM,看完之后你还敢说你懂JVM吗?颠覆you 2020-06-02
- 深入理解Mybatis(第一讲)——手写ORM框架(简易版Mybatis 2020-06-01
- 无责任书评:每个Java程序员都应该深入理解Java虚拟机 2020-05-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash