这段代码就只打印一次作者: 黑马_郑亮新 时间: 2012-11-29 15:23
老毕视频里有讲 作者: 冯盼 时间: 2012-11-29 16:12
静态方法是随着类加载而加载进内存的,是属于类的。静态方法只能被子类继承,子类覆盖父类静态方法所写的的方法无效,仍然会去执行父类方法。作者: 孙万利 时间: 2012-11-29 17:58
class Dog{
//父类方法
public static void bark(){
System.out.println("汪!汪!!汪!!!");
}
}
//定义子类Jingba
class Jingba extends Dog{
//子类覆写父类方法
public static void bark(){ }
}
public class Bark{
public static void main(String arg[]){
Dog dog = new Dog();//实例化父类对象
//Dog jingba = new Jingba();//实例化子类对象
Jingba jingba = new Jingba();
dog.bark();//调用父类方法
jingba.bark();//调用子类方法
}}
这句话是转型错误:
Dog jingba = new Jingba();//实例化子类对象
应该是:
Jingba jingba = new Jingba();
则就对了 作者: 孙万利 时间: 2012-11-29 18:00
这样写也是可以的; 把父类的静态static去掉; 子类相应也去掉static
执行的结果就是你要的一遍了
class Dog{
//父类方法
public void bark(){
System.out.println("汪!汪!!汪!!!");
}
}
//定义子类Jingba
class Jingba extends Dog{
//子类覆写父类方法
public void bark(){ }
}
public class Bark{
public static void main(String arg[]){
Dog dog = new Dog();//实例化父类对象
Dog jingba = new Jingba();//实例化子类对象
//Jingba jingba = new Jingba();
dog.bark();//调用父类方法
jingba.bark();//调用子类方法
}}
//因为子类覆写父类方法,所以打印结果应该只有父类的"汪!汪!!汪!!!"。
//但每次打印的都是调用了两次父类方法。求高人解释一下。