A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© heimafeng 中级黑马   /  2015-8-16 04:41  /  515 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.多态:
  1.父类的引用指向子类的对象;
  2.多态前提和体现
   1).有继承关系
   2).有方法重写
   3).有父类引用指向子类对象
  3.多态的转型:
   1).自动转型:子类的引用转为父类的引用;Person p = new Student();
   2).强制转型:父类的引用转为它所指向的子类对象的引用;Student stu = (Student)p;
   3).在进行强制转型前,为保证安全,可以使用instanceof关键字进行判断:
    if(p instanceof Student){
     Student stu = (Student)p;
    }
  4.多态的好处
   1).提高了程序的维护性(由继承保证)
   2).提高了程序的扩展性(由多态保证)
  5.多态的弊端:
   1).不能访问子类特有功能(可以向下转型)
6.多态时的访问规则

7 个回复

正序浏览
TheBadboy 发表于 2015-8-16 12:24
我的意思是父类想用子类的特有方法,得用强转(向下转型)吧,那么强转之前是不是必须的先多态(父类的对象指 ...

多态是父类的引用指向子类对象,而且只能使用父类里有的方法
回复 使用道具 举报
JXHIUUI 发表于 2015-8-16 10:26
感觉你描述的不是很清楚!你说的自动转换是指多态吗?

我的意思是父类想用子类的特有方法,得用强转(向下转型)吧,那么强转之前是不是必须的先多态(父类的对象指向子类的引用)呢?
回复 使用道具 举报
TheBadboy 发表于 2015-8-16 09:59
强转之前必须要用自动转换?

感觉你描述的不是很清楚!你说的自动转换是指多态吗?
回复 使用道具 举报
强转之前必须要用自动转换?
回复 使用道具 举报
整理的很全面嘛!
回复 使用道具 举报
受教了,赞
回复 使用道具 举报
赞一个 很好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马