zoukankan      html  css  js  c++  java
  • static/final成员与多态

    前期绑定:程序在编译之前将调用方法绑定,如面向过程的C语言。

    后期绑定:程序在运行时决定与哪个方法绑定;如所有面向对象语言。

    在java中,static和final是不参与多态的,就是说多态性对static和final描述的成员无效。

    代码:

    package com.pcitc.pattern.static1;

     

    public class StaticAbstract {

       public static String staticVar = "我是父类的静态变量";

      

       public static void printStatic(){

         System.out.println("我是父类的静态方法");

       }

      

       public void printNoStatic(){

         System.out.println("我是父类的非静态方法");

       }

    }

    package com.pcitc.pattern.static1;

    public class StaticBean extends StaticAbstract{

         public static String staticVar = "我是子类的静态变量";

        

         public static void printStatic(){

            System.out.println("我是子类的静态方法");

         }

        

         public void printNoStatic(){

            System.out.println("我是子类的非静态方法");

         }

    }

    package com.pcitc.pattern.static1;

     

    public class Client {

     

      /**

       * @param args

       */

      public static void main(String[] args) {

         // TODO Auto-generated method stub

           

             StaticAbstract sa = new StaticBean();

             System.out.println(sa.staticVar);

             sa.printStatic();

             sa.printNoStatic();

     

             System.out.println("--------------");

            

             StaticBean sb = new StaticBean();

             System.out.println(sb.staticVar);

             sb.printStatic();

             sb.printNoStatic();

      }

     

    }

    运行结果:

    我是父类的静态变量

    我是父类的静态方法

    我是子类的非静态方法

    --------------

    我是子类的静态变量

    我是子类的静态方法

    我是子类的非静态方法

    通过以上代码示例,可得出:sa.printStatic();调用的是父类的静态方法,同StaticAbstract. printStatic(),没有多态。sa.printNoStatic();调用的是子类的方法,是多态。
  • 相关阅读:
    NYOJ:喷水装置(一)
    NYOJ:QQ农场
    NYOJ:死神来了(鸽巢定理)
    NYOJ:星际之门(一)(cayley定理)
    计蒜客: 法师康的工人 (贪心)
    '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "AttentionController" nib but the view outlet was not set.'
    UITabBar 蓝色
    App installation failed There was an internal API error.
    UIImage将图片写入本地相册
    UINavigationItem不显示
  • 原文地址:https://www.cnblogs.com/mysqlcluster/p/2033470.html
Copyright © 2011-2022 走看看