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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘渝灵 中级黑马   /  2013-2-28 16:47  /  1408 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘渝灵 于 2013-2-28 16:47 编辑

class Fu{
        int num = 5;
}
public class Zi extends Fu{
        
        public void show(){
                System.out.println(super.num);//this.num结果一样,
        }
        public static void main(String[] args) {
                Zi z = new Zi();//在内存中只创建了一个子类的对象。
                                //但是在这种情况下,变量num存在几份呢?存在Fu的num和zi的num吗?
                z.show();
        }
}
/*子类中有和父类同名的属性时,如果要调用相应的num属性需要用到super和this,如果子类中没有父类的同名属性呢?
在这种情况下,变量num存在几份呢?存在Fu的num和zi的num吗?
如果只存在Fu的num,那么this.num为何可以调用呢?
难道是只存在Zi的num,因为多态所以可以super调用?
*/

评分

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

查看全部评分

1 个回复

倒序浏览
  1. package Day16;
  2. class F
  3. {
  4.         int num=3;
  5.         void print()
  6.         {
  7.                 System.out.println("F num="+this.num);
  8.         }
  9.         public static void show()
  10.         {
  11.                 System.out.println("F static show()");
  12.         }
  13. }
  14. class Z extends F
  15. {
  16.         int num=4;
  17.         void print()
  18.         {
  19.                 System.out.println("Z num="+this.num);
  20.         }
  21.         public static void show()
  22.         {
  23.                 System.out.println("Z static show()");
  24.         }
  25. }
  26. class Test2
  27. {
  28.         /*子父类继承多态的三种情况
  29.                 1:子父类中同名变量,当多态创建子类对象调用方法时,调用的是谁的变量
  30.                 2:成员函数
  31.                 3:静态函数*/        
  32.         public static void main(String[] args)
  33.         {
  34.                 F f=new Z();
  35.                 f.print();  //1:当子父类有同名变量时,编译运行都看左边      
  36.                                         //打印结果:F num=3;前提:子类print()没有复写父类print();
  37.                 f.print();  //2:当子父类有同名函数时,子类复写了父类的print()方法;编译看左边,运行看右边  
  38.                                         //打印结果:Z num=4
  39.                 f.show();   //3:当子父类有静态同名函数时,调用show()方法  编译运行都看左边
  40.                                         //打印结果:F static show()
  41.         }
  42. }
复制代码

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马