java多态小结
来源:互联网 发布:可以透视衣服的软件 编辑:程序博客网 时间:2024/05/29 08:52
多态出现的缘由:java的引用变量有两种类型:一个是编译时的类型,一个是运行时类型。
编译时类项:声明该变量时使用的类型决定。
运行时类项:实际赋给该变量的对象决定
如果编译时和运行时类项不一样就会出现所谓的多态(polymorphism)。
多态:相同类项的变量执行同一个方法时,呈现出不同的行为特征这就是多态。
注意:引用变量在编译阶段只能调用其编译时类项所具有的方法,但运行时则执行运行时类项所具有的方法,因此编译java代码时,引用变量只能调用声明该变量时类项里包含的方法,如:Object p = new Person()定义一个变量p,p只能调用Object类得方法而不能调用person类里定义的方法。
与方法不同的是对象的属性则不具有多态性:
Class BaseClass{
Public int book = 9;
}
Class SubClass extends BaseClass{
Public String book = “子类属性”;
}
BaseClass bc = new BaseClass();
SubClass sc = new SubClass();
BaseClass bsc = new SubClass();
上面程序显示创建了3个对象,实际内存里包含了5个人对象(如果不算BaseClass继承java.lang.Object类)因为当系统创建sc,bsc两个变量所引用的对象时系统会隐式的为其各自创建对应的父类对象,其父类对象可以在SubClass中通过super引用来访问,因此不管是sc还是bsc变量,它们都可访问到两个book属性,其中一个来自BaseClass的实例属性,一个来自SubClass中的实例属性,通过引用变量来访问其实例属性时,系统总是试图访问编译时类所定义的属性,而不是运行时类所定义的属性。
- java多态小结
- Java多态小结
- java多态小结
- Java多态小结
- java继承和多态、接口小结
- Java多态知识小结+简单代码实例
- java小结
- java 小结
- java小结
- Java小结
- JAVA小结
- java小结
- JAVA小结
- JAVA小结
- Java小结
- java 小结
- Java小结
- java小结
- 关于oracle时间转换格式问题
- 常见Oracle HINT的用法
- ORACLE 连接方式 NESTED LOOP、HAS…
- oracle sqlldr使用心得
- C++内存模型和名称空间总结
- java多态小结
- Oracle工具使用(export,import,sql…
- java List 排序 Collections.sort()
- oracle中的exists 和not exists 用…
- Nutch与Lucene区别
- java正则表达式应用
- Linux下切分Tomcat的catalina.out…
- 修改log4j配置文件来减小Linux系统…
- 使用cronolog轮循(rotating)Tomc…