首页上一页 1 下一页尾页 1 条记录 1/1页
java关于多态的问题
发表在Java图书答疑
2014-01-27
是否精华
是
否
版块置顶:
是
否
我写了一个程序如下:
package 编程第二十步;
class Animal{
public Animal(){
System.out.println("jiao");
}
}
class Dog extends Animal{
public Dog(){
System.out.println("wangwang");
}
}
public class Dongtaibangding {
public static void main(String[] args){
Animal a=new Dog();
new Animal();
}
}
然后运行结果是
jiao
wangwang
jiao
我很不理解的是结果的前面两个是jiao然后是wangwang,根据动态绑定的原理我的引用a(引用类型是Animal),因为重写了构造方法的缘故,当运行是应该只输出wangwang啊,怎么会有两个呢(先jiao然后wangwang)
package 编程第二十步;
class Animal{
public Animal(){
System.out.println("jiao");
}
}
class Dog extends Animal{
public Dog(){
System.out.println("wangwang");
}
}
public class Dongtaibangding {
public static void main(String[] args){
Animal a=new Dog();
new Animal();
}
}
然后运行结果是
jiao
wangwang
jiao
我很不理解的是结果的前面两个是jiao然后是wangwang,根据动态绑定的原理我的引用a(引用类型是Animal),因为重写了构造方法的缘故,当运行是应该只输出wangwang啊,怎么会有两个呢(先jiao然后wangwang)