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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王红霞 中级黑马   /  2012-6-15 17:23  /  1715 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态中成员函数的特点?具体点吧

3 个回复

倒序浏览
一大串的估计你看了也晕。
多态首先需要子类继承父类;父类引用指向子类对象;子类对父类某方法有重写。

当多态时。
用毕老师的话,总结就是:
成员变量看左边。
成员函数看右边。


简单的例子:
class Father {
  public int age = 40;

  publi void play() {
     System.out.println("看戏~");
  }
}

class Son extends Father {
  public int age = 20;

  publi void play() {
     System.out.println("上网~");
  }
}

主函数:
  Father f = new Son();   //父类引用指向子类对象

  System.out.println(f.age);  //成员变量看左边:也就是遵循父类  结果40

  f.play();  ////成员函数看右边:也就是遵循子类  结果  “上网”
回复 使用道具 举报
本帖最后由 王广丛 于 2012-6-15 21:52 编辑

首先看这么一个例子:
class Animal
{     int num=1;
    public  void method1()
      {
           System.out.println(1);
       }
     public  void method2()
      {
           System.out.println(2);
       }
}
class Cat extends Animal
{     int num=2;
     public  void method1()
      {
           System.out.println(11);
       }
      public void method3()
      {
           System.out.println(3);
       }
     public  static void method4()
      {
           System.out.println(3);
       }
}
class Demo
{
      public static void main(String[] args)
      {
            Animal a=new Cat();
            System.out.println(f.num);
            Cat c=new Cat();
            System.out.println(c.num);
            a.method1();
            a.method2();
            a.method3();//编辑不能通过
            ((Cat)a).method3();//只有强制类型转换后才能编译通过
            c.method4();
       }
}
运行之后可以得出结论:
在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过;否则编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结一下:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。

在多态中,静态成员函数的特点:
无论编译和运行,都参考左边。
在多态中,静态成员变量的特点:
无论编译和运行,都参考左边。
回复 使用道具 举报
在多态中成员函数的特点:(动态绑定)
在编译时期:参阅引用型变量所属类中是否有调用的方法。如果有,编译通过,如果没有编译失败
在运行时期:参阅对象所属类中是否有调用的方法。
简单总结就是:成员函数在多态调用是,编译看左边,运行看右边
在多态中成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译和运行,都参看左边
这就是静态绑定和(非静态)动态绑定的区别
我们能转换的是父类引用指向了自己的子类对象。该引用可以被提升,也可以被强制转换
多态自始至终都是子类对象在做变化
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马