zoukankan      html  css  js  c++  java
  • java 多态

    (1)在多体中非静态成员函数的特点:

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

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

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

    (2)在多体中静态成员函数的特点:

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

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

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

     1 class Fu{
     2     static int num = 1;
     3     void method1(){
     4        System.out.println("父类方法1");  
     5     }
     6    void method2(){
     7       System.out.println("父类方法2");  
     8   } 
     9 
    10 }
    11 
    12 class Zi extends Fu{
    13 
    14     static int num = 2;
    15     void method1(){
    16        System.out.println("子类方法1");  
    17     }
    18     void method2(){
    19       System.out.println("子类方法2");  
    20     }
    21     void method3(){
    22        System.out.println("子类方法3");  
    23     }
    24 }
    25 
    26 
    27 public static void main(String[] args){
    28 
    29            Fu f = new Zi();
    30            System.out.println(f.num);//输出1,对应规则(3),如果是静态函数的话,也是调用父类的方法
    31            f.method1();//输出“子类方法1”
    32            f.method2();//输出“子类方法2”
    33            f.method3();//编译不通过,规则(1)
    }

     PS:静态函数与成员变量是静态绑定,非静态的是动态绑定

  • 相关阅读:
    java中compareTo()用法详解
    random详解
    http协议介绍
    各种Web渗透测试平台
    提升黑客技能的十大网站
    .htaccess文件得用途
    XSS平台搭建
    session攻击(会话劫持+固定)与防御
    伪静态的原理以及应用
    Nessus激活码获取
  • 原文地址:https://www.cnblogs.com/aisam/p/4269351.html
Copyright © 2011-2022 走看看