JAVA学习之多态(二)

来源:互联网 发布:资金曲线图软件 编辑:程序博客网 时间:2024/06/03 21:50
class Fu{int num = 9;void method1(){System.out.println("fu_method1");}void method2(){System.out.println("fu_method2");}static void method4(){System.out.println("fu_method4");}}class Zi extends Fu{int num = 1;void method1(){System.out.println("zi_method1");}void method3(){System.out.println("zi_method3");}static void method5(){System.out.println("zi_method5");}}class  polymorphismDemo{public static void main(String[] args) {/*多态中成员函数的特点:在编译时:参阅引用型变量所属的类中是否有要调用的方法,如果有,则编译成功,没有则编译失败;在运行时:参阅对象所属的类中是否有要调用的方法。简单总结:多态中,引用变量调用方法时,编译看左边,运行看右边。多态中成员变量的特点:当父类和子类中出现同名变量,多态时,无论编译和运行,引用变量都是参考左边(引用变量所属的类)。多态中静态成员函数的特点:无论编译和运行都是参考左边(引用变量所属的类)。静态方法不访问对象特有数据,是可以直接类名调用的,可以不用建立对象。静态没有覆盖,只有非静态的成员函数才有方法的重写覆盖。*/Fu f = new Zi();System.out.println(f.num);f.method1();//多态是运行时多态f.method2();f.method4();//f.method3();因Fu类中没有method3方法,在编译时提示错误Zi z = new Zi();System.out.println(z.num);z.method1();z.method2();z.method3();z.method5();}}运行结果:9zi_method1fu_method2fu_method41zi_method1fu_method2zi_method3zi_method5

0 0