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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

liuliu1234

中级黑马

  • 黑马币:7

  • 帖子:22

  • 精华:0

© liuliu1234 中级黑马   /  2015-5-9 21:18  /  267 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在多态中成员函数的特点:
在编译运行时:参阅引用类型变量所属的类中是否有调用的方法,
如果有,编译通过,如果没有,编译失败;
在运行时:参阅对象所述的类中是否有调用的方法。
简单总结为:成员函数在多态调用时,编译看左边,运行看右边

在多态中,静态成员函数的特点:
无论编译和运行,都参考左边


在多态中成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
class Fu
{
        int num=5;
        void method1()
        {
                System.out.println("fu method_1");
        }
        void method2()
        {
                System.out.println("fu method_2");
        }
        static void method4()
        {
                System.out.println("fu method_4");
        }
}

class Zi
{
        int num=8;
        void method1()
        {
                System.out.println("zi method_1");
        }
        void method3()
        {
                System.out.println("zi method_3");
        }
        static void method4()
        {
                System.out.println("fu method_4");
        }
}


class DuoTaiDemo
{
        public static void main(String[] args)
        {

                Fu f=new Zi();
                System.out.println(f.num);         // 输出5
                Zi z=new Zi();
                System.out.println(z.num);//输出8


                Fu f=new Zi();
                f.method1();//输出子类method1方法
                f.method2();
                f.method3();//编译失败


                Zi z=new Zi();
                z.method4();//输出子类的静态method_4
                Fu f=new Zi();
                System.out.println(f.num);//输出父类的method_4,动态绑定
                f.method4();//输出父类的静态method_4
        }

3 个回复

倒序浏览
总结的不错
回复 使用道具 举报
看着那么多代码就晕了。。。
回复 使用道具 举报
都快忘记了静态编译运行都看左边了,,看到你发的才重新想起来!~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马