首页 > 代码库 > 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 多态
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。