java的多态性

来源:互联网 发布:像哔咔一样的软件 编辑:程序博客网 时间:2024/05/21 16:57

java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现所谓的多态(Polymorphism)。

实例程序如下:

class BaseClass{public int book=6;public void base(){System.out.println("父类的普通方法");}public void test(){System.out.println("父类的被覆盖的方法");}}public class SubClass extends BaseClass{public String book = "轻量级java EE企业应用实战";public void test(){System.out.println("子类的覆盖父类的方法");}public void sub(){System.out.println("子类的普通方法");}public static void main(String[] args){BaseClass bc = new BaseClass();System.out.println(bc.book);bc.base();bc.test();SubClass sc = new SubClass();System.out.println(sc.book);sc.base();sc.test();//BaseClass 是编译时类型,SubClass是运行时类型BaseClass ploymophicBc = new SubClass();System.out.println(ploymophicBc.book);ploymophicBc.base();ploymophicBc.test();}}


运行结果:

6
父类的普通方法
父类的被覆盖的方法
轻量级java EE企业应用实战
父类的普通方法
子类的覆盖父类的方法
6
父类的普通方法
子类的覆盖父类的方法


相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就是多态

0 0
原创粉丝点击