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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class A {
  2.             void fun1() {
  3.                       System.out.println(fun2());
  4.                 }
  5.                 int fun2() {
  6.                         return 123;
  7.                 }
  8.         }
  9.          public class B extends A {
  10.                 int fun2() {
  11.                          return 456;
  12.                  }
  13.               public static void main(String args[]) {
  14.                         B b = new B();
  15.                         b.fun1();
  16.                         A a = b;
  17.                         a.fun1();
  18.                 }
  19.         }
复制代码

9 个回复

正序浏览
本帖最后由 xiaoxiqq 于 2016-4-16 00:43 编辑

前来学习。
回复 使用道具 举报
提前看看,涨涨知识
回复 使用道具 举报
学习了。我真么搞这么清楚
回复 使用道具 举报
xgm 中级黑马 2016-3-13 00:11:31
7#
  1. class A {
  2.     void fun1() {
  3.               System.out.println(fun2());
  4.         }
  5.         int fun2() {
  6.                 return 123;
  7.         }
  8. }

  9. public class B extends A {
  10.         int fun2() {
  11.                  return 456;
  12.          }
  13.       public static void main(String args[]) {
  14.                 B b = new B();
  15.                 /**
  16.                  * B继承了A,B也就继承了A中所有的方法
  17.                  * B调用方法时,会先找B中是否有这个方法,然后再去A中找
  18.                  * 因此此时b.fun1();调用的是B对象中的方法,结果456
  19.                  */
  20.                 b.fun1();
  21.                 /**
  22.                  * 父类A引用指向子类对象B
  23.                  * 子类B重写了A中的fun1(),
  24.                  * 典型的多态,所以结果依然是456
  25.                  */
  26.                 A a = b;
  27.                 a.fun1();
  28.         }
  29. }
复制代码
回复 使用道具 举报
B b = new B( );
b.fun1( );
B继承A方法fun1( ), 输出B的fun2( ),结果456;

A a = b;
a.fun1( );
是多态,B重写A方法fun2( ),结果456,
回复 使用道具 举报
同意楼上
回复 使用道具 举报
B b = new B()  b.fun1() 会打印之类自己的方法  所以是456

A a = new B()   a.fun1() 属于父类引用指向之类对象,会打印父类的方法   所以是123
回复 使用道具 举报
A a=b只是产生了一个指向B b 的指针   输出应该是456 456
回复 使用道具 举报
继承抽象函数的话 不需要重定义fun1吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马