java中的重载、重写(覆盖)和类型转换
2013-11-04 09:10
274 查看
1.定义
重载:主要发生在同一个类中的两个同名函数之间或者具有继承关系的父类和子类中具有同名函数之间,由于函数形参类型不同或者形参个数不同产生重载。
重写(覆盖):发生在父类和子类同名函数之间,子类使用父类的同名函数,只是修改了函数体中的内容。若想在子类的重写函数体中调用父类的该方法,则使用super.方法()。
2.类型转换
1)基本类型转换:该转换只能在数值类型之间进行,即整数型、字符型和浮点型,但数值类型和布尔类型之间不能进行类型转换。
2)引用类型转换:该转换只能在具有继承关系的两个类型之间进行,如果两个没有任何继承关系的类型,则无法进行类型转换。
如果试图把一个父类实例转为子类实例,则这个对象必须实际上是子类实例才行(即使用了多态先转为父类,否则不能转为子类)。
例:
一般在使用之前先使用instanceof进行判断能不能转换,如
重载:主要发生在同一个类中的两个同名函数之间或者具有继承关系的父类和子类中具有同名函数之间,由于函数形参类型不同或者形参个数不同产生重载。
重写(覆盖):发生在父类和子类同名函数之间,子类使用父类的同名函数,只是修改了函数体中的内容。若想在子类的重写函数体中调用父类的该方法,则使用super.方法()。
2.类型转换
1)基本类型转换:该转换只能在数值类型之间进行,即整数型、字符型和浮点型,但数值类型和布尔类型之间不能进行类型转换。
2)引用类型转换:该转换只能在具有继承关系的两个类型之间进行,如果两个没有任何继承关系的类型,则无法进行类型转换。
如果试图把一个父类实例转为子类实例,则这个对象必须实际上是子类实例才行(即使用了多态先转为父类,否则不能转为子类)。
例:
double d=3.14; long l=(long)d; Object obj="Hello"; String objStr=(String)obj;//可进行转换 Object objInt=new Integer(5); String str=(String)objInt;//无继承关系,不能转换,将抛出ClassCastException异常
一般在使用之前先使用instanceof进行判断能不能转换,如
if(objInt instanceof String) { String str=(String)objInt; }
相关文章推荐
- Javascript 面向对象 重载
- php面向对象全攻略 (八)重载新的方法
- Apache rewrite的重写相关的参数说明
- javascript重写alert方法的实例代码
- JavaScript 通过模式匹配实现重载
- 第十一节 重载 [11]
- 解析CI即CodeIgniter框架在Nginx下的重写规则
- Javascript 面向对象之重载
- C++重载运算符的规则详解
- ASP.NET中获取URL重写前的原始地址详解
- jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
- 有关于JS构造函数的重载和工厂方法
- 类成员函数的重载、覆盖与隐藏之间的区别总结
- C++概念重载、覆盖、隐藏的使用说明
- asp.net url重写的好处与方法
- java中重载、覆盖和隐藏三者的区别分析
- 浅谈java中静态方法的重写问题详解
- Javascript基础 函数“重载” 详细介绍
- C++中复制构造函数和隐式转换
- 鸡啄米:C++编程入门系列之四十五(多态性:运算符重载的概念和规则)