码迷,mamicode.com
首页 > 其他好文 > 详细

oop_day07_多态_20150815

时间:2015-08-16 02:13:40      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

oop_day07_多态_20150815


1.多态:多种形态

   1)多态的意义:

      1.1)同一类型的引用指向不同的对象时,有不同的实现

            ---------cut()、run()-----行为的多态

      1.2)同一个对象被造型为不同的类型时,有不同的功能

            ---------我、水---------对象的多态

   2)向上造型:

      2.1)父类型的引用指向子类的对象

      2.2)能向上造型的类型有: 父类、所实现的接口

      2.3)能点出来什么,看引用的类型

   3)强制类型转换,成功的情况有两种:

      3.1)引用所指向的对象,就是该类型

      3.2)引用所指向的对象,实现了该接口

   4)强转失败会发生类型转换异常(ClassCastException)

      强转之前最好通过instanceof来判断引用所指向的对象是否是该类型,

      instanceof返回true或false,强转成功的条件就是instanceof为true的条件


代码示例:

package oo.day07;
//向上造型
public class UpDemo {
	public static void main(String[] args) {
		Boo o1 = new Coo(); //向上造型
		Coo o2 = (Coo)o1; //正确,o1所指向的对象就是Coo类型
		Inter3 o3 = (Inter3)o1; //正确,o1所指向的对象实现了Inter3接口
		//Doo o4 = (Doo)o1; //类型转换异常(ClassCastException)
		
		if(o1 instanceof Doo){
			Doo o5 = (Doo)o1;
		}
	}
}

interface Inter3{
}
class Boo{
}
class Coo extends Boo implements Inter3{
}
class Doo extends Boo{
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

oop_day07_多态_20150815

标签:

原文地址:http://blog.csdn.net/u011637069/article/details/47688571

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!