黑马程序员-overload与override的区别
来源:互联网 发布:淘宝营销短信关闭 编辑:程序博客网 时间:2024/05/16 08:56
overload 即重载,重载是指在一个类中,可以定义相同的方法名,但参数列表不同的多个方法。其规则是:每个重载的方法都必须有一个独一无二的参数类型列表。在调用时,根据参数列表的不同,选择相应的方法。
重载举例:
class Tree{
void info(){
System.out.println("I am a tree");
}
void info(String str){
System.out.println(str + "I am a tree");
}
}
public class Overload {
public static void main(String[] args){
Tree t = new Tree();
t.info();
t.info("overload: ");
}
}
对于构造器,也有方法重载。要想用多种方式创建对象,用方法重载,即方法名相同(即类名)而形式参数不同的构造器同时存在,就可以选择不同的方式来创建对象。
涉及到基本类型的重载时,如果传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升。对于char型,如果无法找到接收char参数的方法,就把char直接提升至int型来处理。
如果传入的数据类型大于方法中声明的形式参数类型,必须通过强制类型转换将其类型窄化转换,否则编译失败。
需要注意的是:不能以返回值来区分重载方法,因为当你在调用方法时,忽略了返回值类型,没有加以区分,那么编译器会不知道如何处理,将会编译失败。
override即重写:在子类中可以根据需要对从父类中继承来的方法进行重写,来满足子类方法的需求。
重写方法是,必须和被重写的方法具有相同的方法名称,参数列表和返回值类型。
重写方法不能使用比被重写方法更严格的访问权限。
例如:如果父类的方法访问修饰是public,那么子类只能也是public
如果父类的方法访问修饰是protected,那么子类可以是protected,或者是public
如果父类的方法访问修饰是默认(包访问级别),那么子类可以是默认、protected,或者是public。
若重写的父类方法中抛出异常,那么子类在重写时,只能跑出父类异常或其子类。若父类抛出多个异常,子类在重写父类时,只能抛出父类异常的子集。若父类方法中没有抛出异常,子类在重写时也不能抛异常,只能try/catch处理。
静态方法只能重写静态方法。
final方法不能被重写。
能想到的就这么多了,就先总结到这里吧,再想到了,再来补充。
- 黑马程序员-overload与override的区别
- 黑马程序员——overload与override的区别
- 黑马程序员---基础强化---overload与override的区别
- 黑马程序员学习日记 overload与override的区别
- 黑马程序员-overload和override的区别
- 黑马程序员--浅谈Overload和Override的区别
- override与overload的区别
- overload与override的区别
- override与overload的区别
- override 与overload的区别
- override 与overload 的区别
- OverLoad与override的区别
- Overload与Override的区别
- Overload与Override的区别
- override与overload的区别
- overload与override的区别
- override与overload的区别
- override 与overload 的区别
- asp.net验证控件自定义控件
- 统计在线已登录用户数量并获取客户端IP(涉及HttpSessionListener监听)
- horizon架构整理
- 【jquery】收藏本站——添加到浏览器的收藏夹
- Ext JS 4.2 Grid预览
- 黑马程序员-overload与override的区别
- 天气预报
- VM虚拟机桥接上网
- 电容器的作用
- 从菜鸟到专家
- 你的 mixin 兼容 ECMAScript 5 吗?
- shell脚本中for循环语句错误
- 黑马程序员_jdk1.5新特性总结
- cocos2d CCSequence