oop_day07_多态_20150815

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{
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值