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类的成员.
}
}
Java编程技术交流QQ群:171396965 技术需要交流,技术需要与时俱进.这里是优秀爱好Java编程的集聚地,我们一起学习,共同进步.加入时请注明Java字样,谢谢.