黑马程序员技术交流社区

标题: 黑马程序员——多态 [打印本页]

作者: heimafeng    时间: 2015-8-16 04:41
标题: 黑马程序员——多态
一.多态:
  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.多态时的访问规则

作者: 巧克黑力    时间: 2015-8-16 06:50
赞一个 很好
作者: 疯疯疯疯疯子    时间: 2015-8-16 08:55
受教了,赞
作者: kevin986745zk    时间: 2015-8-16 09:05
整理的很全面嘛!
作者: TheBadboy    时间: 2015-8-16 09:59
强转之前必须要用自动转换?
作者: JXHIUUI    时间: 2015-8-16 10:26
TheBadboy 发表于 2015-8-16 09:59
强转之前必须要用自动转换?

感觉你描述的不是很清楚!你说的自动转换是指多态吗?
作者: TheBadboy    时间: 2015-8-16 12:24
JXHIUUI 发表于 2015-8-16 10:26
感觉你描述的不是很清楚!你说的自动转换是指多态吗?

我的意思是父类想用子类的特有方法,得用强转(向下转型)吧,那么强转之前是不是必须的先多态(父类的对象指向子类的引用)呢?
作者: JXHIUUI    时间: 2015-8-16 13:28
TheBadboy 发表于 2015-8-16 12:24
我的意思是父类想用子类的特有方法,得用强转(向下转型)吧,那么强转之前是不是必须的先多态(父类的对象指 ...

多态是父类的引用指向子类对象,而且只能使用父类里有的方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2