A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jagon 中级黑马   /  2014-3-14 11:18  /  1683 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();
         }
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

4 个回复

正序浏览
本帖最后由 daoyua 于 2014-3-14 17:13 编辑

子类如果和父类的方法相同,即重写了父类方法,就只会调用子类的,如果子类没有方法,就会调用父类的
回复 使用道具 举报
成员变量编译看左边,运行看右边。成员方法编译和运行都是看左边的。
回复 使用道具 举报
当父类方法被静态修饰时,就运行父类中的方法。
例如:
  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. }
复制代码













评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
静态之后可以直接用类名来调用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马