class A
{
public void fun1()
{
System.out.println("A --> public void fun1()") ;
}
public void fun2()
{
// fun2方法调用的是fun1方法
this.fun1() ;
}
}
class B extends A
{
// 覆写A类中的fun1()方法
public void fun1()
{
System.out.println("B --> public void fun1()") ;
}
public void fun3()
{
System.out.println("B --> public void fun3()");
}
}
class C extends A
{
// 覆写A类中的fun1()方法
public void fun1()
{
System.out.println("C --> public void fun1()") ;
}
public void fun5(){
System.out.println("C --> public void fun5()");
}
}
public class Demo03{
public static void main(String args[])
{
fun(new C()) ;
}
/* 如果传入的是B类的对象,则要求再调用fun3()方法;
如果传入的是C类的对象,则要求再调用fun5()方法。
这样,通过instanceof,实现了判别某个对象到底是谁的实例 */
public static void fun(A a)
{
a.fun2() ;
//如果a是B的实例化对象,则调用fun3()
if(a instanceof B)
{
B b = (B)a;
b.fun3() ;
}
//如果a是B的实例化对象,则调用fun5()
if(a instanceof C)
{
C c = (C)a ;
c.fun5() ;
}
}
}
作者: 麦田守望者0812 时间: 2012-6-2 15:00
public class MyKey {
@Override
public String toString() {
// TODO Auto-generated method stub
return name+","+age;
}
private String name;
private int age;