zoukankan      html  css  js  c++  java
  • 多态中对成员的调用

    1,成员变量:当子父类有同名成员变量时,多态调用时,只看调用该成员变量的引用所属于的类中的成员变量。简单说:无论编译或运行,都看等号的左边就行了。

    class FU
    {
         int num=1;
    }
    class ZI extends FU
    {
        int num=2;
    }
    class test{
    
       public static void main(String[] args){
             FU f=new ZI();
            int a=f.num;
          System.out.println(a);
      }
    }/*
    运行结果输出为1;*/

      

    2,成员函数:当子父类有同名成员函数时,多态调用时,编译时看的是引用变量所属的类中的方法;运行时,看的是对象所属的类中的方法。简单说:编译看左边,运行看右边。

    class FU
    {
         int num=1;
    	 void show(){
    		 System.out.println("FU的show方法");
    	 }
    }
    class ZI extends FU
    {
        int num=2;
    	 void show(){
    		 System.out.println("ZI的show方法");
    	 }
    }
    class TEST{
    
       public static void main(String[] args){
             FU f=new ZI();
             f.show();
        }
    }
    //运行结果为输出ZI的show方法
    

      

    3,静态函数:当子父类有同名静态函数时,多态调用时,编译和运行是看引用变量所属的类中的方法。简单书:编译运行看左边。(真正调用静态方法是不需要对象的,直接类名调用)

    class FU
    {
         int num=1;
    	 void show(){
    		 System.out.println("FU的show方法");
    	 }
    	 static void staticMethod(){
    		 System.out.println("Fu的静态方法");
    	 }
    }
    class ZI extends FU
    {
        int num=2;
    	 void show(){
    		 System.out.println("ZI的show方法");
    	 }
    	 static void staticMethod(){
    		 System.out.println("ZI的静态方法");
    	 }
    }
    class TEST{
    
       public static void main(String[] args){
             FU f=new ZI();
             f.staticMethod();
        }
    }
    //运行结果输出Fu的静态方法
    

      

  • 相关阅读:
    鼠标不灵了,还好只是线的问题。自己DIY修下了
    [摘]编译MPlayer
    TPLINK路由器 硬重启方法
    Visual C++线程同步技术剖析 (转载)
    CListCtrl一行显示多个图标问题
    一位软件工程师的6年总结
    CCIE红头发讲解CCNA、CCNP视频教程
    图片链
    [摘]如何级联两个TPLINK路由器
    [摘]测试一下你对IP地址的掌握水平
  • 原文地址:https://www.cnblogs.com/day93110/p/6486528.html
Copyright © 2011-2022 走看看