JAVA基础之多态成员特点

来源:互联网 发布:整数划分问题c语言 编辑:程序博客网 时间:2024/05/22 04:47
多态时,成员的特点:


1.成员变量。
编译时,参考引用型变量所属的类中是否有调用的成员变量。有,编译通过。无,编译失败。
运行时,参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。

大白话就是:编译和运行时都参考等号的左边即可。

2.成员函数(非静态)
编译时,参考引用型变量所属的类中是否有调用的成员函数。有,编译通过。无,编译失败。
运行时,参考的是对象所属的类中是否有调用的函数。

大白话就是:编译看左边,运行看右边。

3.静态函数
编译时,参考引用型变量所属的类中是否有调用的静态方法.
运行时,参考引用型变量所属的类中是否有调用的静态方法.

大白话就是:编译和运行都看左边.

其实对于静态方法:是不需要对象的,直接用类名调用即可。

class Fu{int NUM=8;void show(){System.out.println("随意");}}class Zi extends Fu{int NUM=9;void show(){System.out.println("随便");}}class DuoTai{public static void main(String[] args) {Fu f= new Zi();System.out.println(f.NUM);//结果会是8.//以上,如果父类中没有int变量的话,结果会报错。Zi z= new Zi();System.out.println(z.NUM);//结果会是9.//以上,如果子类中没有Int变量的话,结果就会是8.System.out.println("------------");Fu f1= new Zi();f1.show();//结果会是”随便“,因为创建对象后,f1就指向了子类创建的对象.//所以调用的方法就应该是对象的方法//但是如果父类中没有方法的话,编译就会报错。是不会出现运行子类方法的。}}


0 0
原创粉丝点击