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字样,谢谢.
作者:StellaAh 发表于2011-8-27 11:07:43 原文链接
阅读:140 评论:0 查看评论