黑马程序员技术交流社区

标题: 子类覆盖父类方法问题? [打印本页]

作者: jagon    时间: 2014-3-14 11:18
标题: 子类覆盖父类方法问题?
class A {
         public void print() {
                   System.out.println("Hello World .") ;
         }
}
class B extends A {
         public void print() {
                   super.print() ;
                   System.out.println("天天向上!") ;
         }
}
class C extends A{
       public void print() {
                   super.print() ;
                   System.out.println("好好学习!") ;
}
public class Test {
         public static void main(String args[]) {
                   B b = new B() ;
                   C c=new C();
                   b.print() ;    // 是不是只要子类覆写了父类的方法,就一定都调用子类方法,请问有没有调用父类方法的其他情况?
         c.print();
         }
}

作者: 1014917278    时间: 2014-3-14 15:03
静态之后可以直接用类名来调用
作者: 松毛    时间: 2014-3-14 16:42
当父类方法被静态修饰时,就运行父类中的方法。
例如:
  1. class Fu  
  2. {  
  3.      static void method4()  
  4.     {  
  5.         System.out.println("fu_method4");  
  6.     }   
  7. }
复制代码
  1. class Zi extends Fu  
  2. {
  3.     static void method4()  
  4.     {  
  5.         System.out.println("fu_method4");  
  6.     }  
  7. }  
复制代码
  1. class DuoTaiDemo1   
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         Fu f = new Zi();
  6.         f.method4();    //method4为静态,所以输入为左边父类中的方法;
  7.     }  
  8. }
复制代码














作者: syusikoku    时间: 2014-3-14 17:11
成员变量编译看左边,运行看右边。成员方法编译和运行都是看左边的。
作者: daoyua    时间: 2014-3-14 17:11
本帖最后由 daoyua 于 2014-3-14 17:13 编辑

子类如果和父类的方法相同,即重写了父类方法,就只会调用子类的,如果子类没有方法,就会调用父类的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2