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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 碎流 高级黑马   /  2014-8-21 00:12  /  1738 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class A {
    void fun1() {                                 //6,父类怎么访问子类?
              System.out.println(fun2());
        }
        int fun2() {                              //
                return 123;
        }
}
  class B extends A {                            //5.为什么不可以加public
        int fun2() {
                 return 456;
         }

      public static void main(String args[]) {   //1,主函数定义在这里什么意思?
                B b = new B();   //创建一个类B.
                b.fun1();                        //2,这里怎么会访问到父类的fun1方法?
                A a = b;                         //3,把子类给父类什么意思?
                a.fun1();                        //4,这里怎么实现?
        }

}

运行结果:456    456


6 个回复

倒序浏览

  1. 下面是个人理解,可以参考下,说的不是很透彻,很多概念是需要自己积累学习。
  2. class A
  3. {
  4.      void fun1()
  5.         {                                 //6,父类怎么访问子类?
  6.                 System.out.println(fun2());
  7.         }
  8.         int fun2()
  9.         {                             
  10.         return 123;
  11.         }

  12. }

  13. public class B extends A        //5.为什么不可以加public
  14. {                           
  15.         int fun2()
  16.         {
  17.        return 456;
  18.     }

  19.         public static void main(String args[]) //1,主函数定义在这里什么意思?
  20.         {   
  21.                 B b = new B();   //创建一个类B.
  22.                 b.fun1();                        //2,这里怎么会访问到父类的fun1方法?
  23.                 A a = b;                         //3,把子类给父类什么意思?
  24.                 a.fun2();                        //4,这里怎么实现?
  25.         }
  26. }
  27. /*
  28. 分析:
  29. (1)主函数定义在那里无所谓,只是告诉JVM一个程序的入口,一般可以叫做测试函数。
  30. (2)b是B的对象,B继承了A之后,B就拥有其父类B中的所有非私有方法。
  31. (3)父类B指向其子类A的引用,这就是多态机制
  32. (4)B类型的b类型向上提升为a是A类型的,当调用fun1()时,a他本身有该方法,所以可以使用。假如这里你调用fun2(),返回结果为123.
  33. (5)这里是可以加public,但一个包中,只能有一个public类型的类。因为public类的类名,必须和我们文件名相同,而文件名只有一个。
  34. (6)多态中,父类类型变量可以通过向下转型为其子类类型对象,调用子类中的方法。前提是:该父类类型变量的真实面目是要向下转型子类类型的。(或者:创建子类对象来访问,这样会产生一个新对象)。
  35. */
复制代码

回复 使用道具 举报
我就看看不说话
回复 使用道具 举报
童鞋 基础一定要认真学,我说说你出问题的原因:
1、对权限模糊 :private public protect 及默认权限;
2、对继承模糊: extend super this 及构造函数;
3、主函数的作用(每个可运行函数都有一个且唯一一个主函数);

加油 !!
回复 使用道具 举报
二楼正解
回复 使用道具 举报
我怎么感觉这像是基础试题?  我记得基础试题里就有跟这个差不多的一个题
回复 使用道具 举报
(3)父类B指向其子类A的引用,这就是多态机制。
上面解释的这个不对吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马