多态总结
来源:互联网 发布:软件效果器怎么用 编辑:程序博客网 时间:2024/06/05 18:48
多态实质:A系统向B系统请求名为甲的服务,甲这种服务在B里有多种实现方式,具体细节被封装在B系统中,对于A系统来说是不可见的。
以下规则适用于父类 的引用变量引用子类实例变量
//父类public class base{ String BaseStr="base"; static String staticBaseStr="staticBase"; public void method1(){ System.out.println("Base's method1") } public static void method2(){ System.out.println("Base's static method2") }}//子类public class Sub extends base{ String SubStr="sub"; static String staticSubStr="staticSub"; public void method1(){ System.out.println("Sub's method1") } public static void method2(){ System.out.println("Sub's static method2") }}public class test{ public void main(arg s){ Base base =new Sub();//父类 的引用变量引用子类实例变量 base.BaseStr="new base";//合法 base.SubStr="new sub";//编译出错 不符合规则1,规则3第三点 Base中没SubStr; ((Sub)base).SubStr="new sub";//合法,向下转型为Sub类型 base.staticBaseStr="123";//合法 base.staticSubStr="123";//编译出错 不符合规则1,规则3第三点 Base中没staticSubStr; ((Sub)base).staticSubStr="123"//合法,理由同上 base.method1();//根据规则2 打印Sub's method1 base.method2();//根据规则3第二小点 打印Base's static method2 }}
1、对于一个引用类型的变量,java编译器按照它声明的类型处理。
2、对于一个引用类型的变量运行时java虚拟机按照实际引用的对象来处理
3、在运行时环境中,通过引用变量来访问所引用对象的方法和属性时java虚拟机采用一下绑定机制:
//·实例方法与所引用的实际对象的方法绑定,这种属于动态绑定;//·静态方法与所引用变量的声明类型(也就是声明变量的类)的方法绑定,静态绑定//·成员变量(静态变量和成员变量)与所引用变量的声明类型(也就是声明变量的类)的成员变量绑定//·换句话说引用变量是声明类型(也就是类)那么该引用变量所访问的静态方法,成员变量均是该类的静态方法和该类的成员变量,与第一点相呼应
阅读全文
0 0
- c# 多态总结
- 动态多态总结
- 多态总结
- 多态总结
- 多态总结
- java 多态总结
- 多态的总结
- C++多态总结
- Java 多态总结
- java_多态总结
- java 多态总结
- 多态问题总结
- 多态总结
- java 多态总结
- 多态总结
- Java多态总结
- 多态总结
- c++多态总结
- http status 错误码
- yii migrate的使用
- Java学习1:搭建开发环境和第一个Java程序
- 函数可重入性(Reentrancy)概念详解
- 纯js实现移动端web端轮播图-结合transition动画
- 多态总结
- 视频学习第一课笔记
- jpeg解码库使用实例
- 栈和队列
- Struts2入门基础小结!
- JVM字节码执行引擎
- 异构网络参考点选择的问题
- PAT 乙级练习题1015. 德才论 (25)
- Engine-字符串