您的位置:首页 > 编程语言 > Java开发

java study 08day--多态中成员的特点

2012-09-07 10:38 190 查看
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 extends Fu

{

       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("zi method_4");

       }

}

class  DuoTaiDemo4

{

       public static void main(String[] args)

       {

              Zi z = new Zi();

              z.method1();

              z.method2();

              z.method3();

       }

打印的结果:

zi method_1

fu method_2

zi method_3

 

若更改为:

public static void main(String[] args)

       {

              Fu f = new Zi();

              f.method1();

              f.method2();

              f.method3();

       }

结果为编译错误!其中的method3找不到。

分析:在多态中成员函数的特点:

在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

在运行时期:参阅对象所属的类中是否有调用的方法。

简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。

 

2、面试题目:

       public static void main(String[] args)

       {

Fu f = new Zi();

              System.out.println(f.num);

              Zi z = new Zi();           

System.out.println(z.num);

}

打印出的结果为5,8

 

在多态中,成员变量的特点:

无论编译和运行,都参考左边(引用型变量所属的类)。

3、在多态中,静态成员函数,变量的特点:

无论编译和运行,都参考做左边。

public static void main(String[] args)

       {

Fu f = new Zi();

f.method4();

Zi z=new Zi();

 

}

打印出的结果:fu-method4

                       zi-method4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string class 面试