黑马程序员技术交流社区

标题: 多态 [打印本页]

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

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


在多态中成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
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
        }


作者: 牛仔很忙fire    时间: 2015-5-9 21:25
总结的不错
作者: fc389119336    时间: 2015-5-9 21:44
看着那么多代码就晕了。。。
作者: 潘成旺    时间: 2015-5-9 21:57
都快忘记了静态编译运行都看左边了,,看到你发的才重新想起来!~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2