黑马程序员技术交流社区
标题: 子类覆盖父类方法问题? [打印本页]
作者: 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
当父类方法被静态修饰时,就运行父类中的方法。
例如:
- class Fu  
 
- {  
 
-      static void method4()  
 
-     {  
 
-         System.out.println("fu_method4");  
 
-     }    
 
- } 
- class Zi extends Fu  
 
- { 
 
-     static void method4()  
 
-     {  
 
-         System.out.println("fu_method4");  
 
-     }  
 
- }  
- class DuoTaiDemo1   
 
- {  
 
-     public static void main(String[] args)   
 
-     {  
 
-         Fu f = new Zi();
 
-         f.method4();    //method4为静态,所以输入为左边父类中的方法; 
 
-     }  
 
- }
作者: 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 |