阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java中对象类型的强制转换

Posted on 2011-08-27 11:08  阳光VIP  阅读(926)  评论(0编辑  收藏  举报
class person
{
	void f1()
	{
		System.out.println("person f1 is calling !");
	}
	void f2()
	{
		f1();
	}
}

class student  extends person
{
	void f1()
	{
		System.out.println("student f1 is calling! ");
	}
	void f3()
	{
		System.out.println("student f3 is calling!");
	}
	void f4()
	{}
}
class Rt20
{
public static void main(String[]args)
	{
		student s=new student();
		call(s);
	}
	public static void call(person p)//子类的对象可以自动转换为父类的对象.
	{
		if(p instanceof student)//这句意思:p确实是student的对象吗.
		{
		student s=(student)p;//把person类型强制转换为student类型.
		s.f1();
		s.f2();
		s.f3();	
		}
		else 
		{
		p.f1();
		p.f2();
		}
		//p.f4();//p只能调用person类的内容,虽然说p来源于student .但是它带上person类的
		//帽子,所以只能调用person类的成员.
	}
}
CSDN
Java编程技术交流QQ群:171396965  技术需要交流,技术需要与时俱进.这里是优秀爱好Java编程的集聚地,我们一起学习,共同进步.加入时请注明Java字样,谢谢.
Java编程技术交流QQ群171396965
作者:StellaAh 发表于2011-8-27 11:07:43 原文链接
阅读:140 评论:0 查看评论