java-多态
来源:互联网 发布:网络歌曲好想好想你 编辑:程序博客网 时间:2024/06/05 17:31
Java的引用变量有两种类型,一种是编译时类型,声明的时候的类型所决定;另外一种是运行时类型,由运行时的类型所决定;所以在编译和运行时类型不一样,就会出现多态!
如 Object test = new String(); Object就是test的编译类型;String 就是test的运行类型;
而在子类对象赋值给父类引用变量,称为向上转型;自动完成;而父类对象赋值给子类的时候,就需要强制换换;,容易报异常:ClassCastException;所以需要用到
instanceof运算符
if(object instanceof String)
{
String str = String(object);就会报异常ClassCastEXception
}
所以下题目:编译时就不通过,因为编译时使用的是父类对象Base,所以此时base调用父类中不存在的methodB方法时,编译不通过;
但是,注释掉base.methodB的时候,base.method调用的运行时类型子类Son的方法;
即,一种是编译时类型,声明的时候的类型所决定;另外一种是运行时类型,由运行时的类型所决定;
package Wangyi;class Base{ public void method() { System.out.println("Base"); } }class Son extends Base{ public void method() { System.out.println("Son"); } public void methodB() { System.out.println("SonB"); }}public class Test01{ public static void main(String[] args) { Base base = new Son(); base.method(); base.methodB(); }}
0 0
- Java学习 java -- 多态
- java多态
- java多态
- java多态
- java多态
- Java多态
- java多态
- JAVA@多态
- Java多态
- java 多态
- Java多态
- java多态
- [Java] 多态
- JAVA多态
- Java多态
- java多态
- java 多态
- java多态
- phpMyAdmin 无法登陆的解决方案
- 浏览器关闭后,Session就销毁了吗?
- C#如何向word文档插入一个新段落及隐藏段落
- pic ku--不要查看
- SQLAlchemy 全面理解
- java-多态
- zookeeper客户端命令使用
- 【Java SE】如何用Java实现冒泡排序
- 编译错误:error: invalid initialization of non-const reference of type ‘*&’ from a temporary of type
- CSS网页使用Font Awesome图标字体时,css定义 content 属性
- linux下redmine3.3迁移、升级、插件备忘录
- Qt两种设置Layout的方式有什么区别
- Spring-boot返回Json格式数据
- LintCode 47 主元素 II