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

java上转型的多态

2016-06-04 21:53 519 查看
                                  我也不知道自己理解的怎么样,就这部分的多态常用。看视频理解的。、

       class  Fu

{
int num=10;
void show()
{
System.out.println("Fu show run...");
}
static void run()
{
System.out.println("Fu static  run...");
}

}

class Zi extends Fu

{

     int num=100;
void method()
{
System.out.println("Zi method run...");
}

   void show()
{
System.out.println("Zi show run...");
}
static void run()
{
System.out.println("Zi static  run...");
}

}

class DuotaiDemoTest

{
public static void main(string[] arg)
{

        Fu f=new Zi();//子类对象向上转型
f.num;//运行后:Fu中的10
//f.method();//编译失败,父类中没有method方法
f.show();//运行后:Zi show run。。。
f.run();//运行后:Fu static run...
}

}

总结就是:   

  Fu   f=new Zi();

       成员方法:

   编译时:要看引用所属的类(个人理解是父类)中有没有这个成员方法,有,则编译通过;没有,则不通过;

运行时:运行的是引用所指的对象中的成员方法(子类重写的那个方法);

      成员变量:

   编译时:要看引用所属的类中必须有这个成员变量,否则编译不通过;

    运行时:仍然使用的引用所属类中的成员变量。

      静态方法:

   编译时:看引用所属中的功能,有,则编译通过;否则失败。

运行时:运行引用所属类中的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: