class A
{
public void func1()
{
System.out.println("A func1 is calling");
}
public void func2()
{
func1();
}
}
class B extends A
{
public void func1()
{
System.out.println("B func1 is calling");
}
public void func3()
{
System.out.println("B func3 is calling");
}
}
class hello
{
public static void main(String [] args)
{
B b=new B();
A a = b;
callA(a);
callA(new A());
}
public static void callA(A a)
{
if (a instanceof B)
{
B b=(B)a;
b.func1();
b.func2();
b.func3();
}
else
a.func1();
a.func2();
}
}结果
B func1 is calling
B func1 is calling
B func3 is calling
B func1 is calling
A func1 is calling
A func1 is calling注意 程序里面是有callA(new A());
就是不知道第4行的B func1 is calling到底从那里来得?
{
public void func1()
{
System.out.println("A func1 is calling");
}
public void func2()
{
func1();
}
}
class B extends A
{
public void func1()
{
System.out.println("B func1 is calling");
}
public void func3()
{
System.out.println("B func3 is calling");
}
}
class hello
{
public static void main(String [] args)
{
B b=new B();
A a = b;
callA(a);
callA(new A());
}
public static void callA(A a)
{
if (a instanceof B)
{
B b=(B)a;
b.func1();
b.func2();
b.func3();
}
else
a.func1();
a.func2();
}
}结果
B func1 is calling
B func1 is calling
B func3 is calling
B func1 is calling
A func1 is calling
A func1 is calling注意 程序里面是有callA(new A());
就是不知道第4行的B func1 is calling到底从那里来得?
解决方案 »
- 请问JAVA有哪些方式可以实现动态调用 Web Service呢? 我的代码报了一个很怪异的错误 , 高手帮帮忙.
- 关于封装类如Integer的问题
- 怎样让struts不返回页面?
- 几个关于STRUTS标签的问题
- java中如何实现循环队列?需要自己写还是有现成的容器类可以用?
- 高分求救:SOCKET通信传输格式问题:java.lang.NumberFormatException: at javaa/lang/Integer.parseInt
- JTable焦点问题(在线等待)
- 字体设置
- 想请问各位朋友一个问题
- 请教高手!使用serlvet连接远端得DB2数据库(源码在内,测试不通过)?
- 试试看,IBM招聘题
- 有点难度的问题
B func1 is calling
B func1 is calling
B func3 is calling
A func1 is calling
A func1 is calling
B func1 is calling
B func1 is calling
B func3 is calling
B func1 is calling
A func1 is calling
A func1 is calling
应该是 所以a.func1();时,class A的func1被class B的func1重写...
A a = b;
callA(a);
与
callA(new B());
等价...这样还不明白?