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:静态函数与成员变量是静态绑定,非静态的是动态绑定

转载于:https://www.cnblogs.com/aisam/p/4269351.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值