方法重载规则

  1. 参数个数不同
  2. 参数个数相同,但参数列表中对应的某个参数的类型不一样
  3. 方法的返回类型和参数名称不参与重载
  4. "编译期绑定",,因为未产生对象,只看参数、引用类型绑定方法

	public void f(String s,int i) {}

	public void f(int i,String s) {} //重载是正确的,这个点很难理解,大概是符合第二条规则

	public void  f(String string ,int i,int j) {} //第一条规则

     // public int f(String s ,int i){}//重载错误,返回值不参与重载判定

     // public void f(String s1 ,int i1){}//重载错误,参数名不参与重载判定

基本数据类型的重载

  • char变量如果没有char参数的方法,会进入int参数方法

示例代码

public class Override {

    //基本数据类型的重载
void g(int ch) {System.out.println("char to int");} public static void main(String[] args) {
Override override= new Override();
char ch= '5';
override.g(ch); }
} 结果:char to int
  • 不存在byte,short常量,所有的不是long的整型数都是int,所以在进行基本数据重载时,要注意这点

示例代码

public class Override {

	//基本数据类型的重载
void f(char ch) {System.out.println("char");}
void f(int i) {System.out.println("int");}
void f(byte bt) {System.out.println("byte");}
void f(short st) {System.out.println("short");}
void f(long l) {System.out.println("long");} public static void main(String[] args) {
Override override= new Override();
override.f(5);
}
} 结果:int

方法重写(两同两小一大原则)

  • 方法名相同

  • 参数类型相同

  • 子类返回类型小于等于父类方法返回类型(基本数据类型必须等于,引用数据类型可以小于,Java中子类小于父类)

  • 子类抛出异常小于等于父类方法抛出异常

  • 子类访问权限大于等于父类方法访问权限

  • “运行期绑定”,因为产生了对象,所以看对象类型绑定方法

class Father{

    void show();

    Father talk(){

        return null; 

    }

}

class Son extends Father{

    void show(); //正确,完全相同

    void show(){ //正确,子类重写父类方法

        super.show();
System.out.print("show"); } Son talk(){ return null; }//正确,返回数据类型小于父类 /* 错误 * int show();类型错误,基本数据类型必须父子相同 * Object talk(){ return null; }; 类型错误,引用数据类型必须父类大于等于子类 */ }

最新文章

  1. 查看Wait type
  2. C#画表格
  3. linux 编程环境搭建过程记录
  4. SQL SERVER2008及以上版本数据库自动备份的三种方法
  5. Bootstrap页面布局11 - BS表单
  6. HTML5-新API选择器
  7. Java中类的初始化顺序
  8. opensuse pptp拨号设置注意事项
  9. iOS中UISearchBar(搜索框)使用总结
  10. linux 日志查看总结
  11. leetcode two sum python
  12. Oracle的常用命令之备份和恢复数据库
  13. DataTable转换成List集合,传递到HTML页面
  14. ASPxGridView 用法
  15. Docker安装及常用命令
  16. linux 中mv命令
  17. php数组的逐行写入文件与读取
  18. 微信小程序开发工具常用快捷键
  19. 解决crontab不加载环境变量问题
  20. Zabbix Agent for Linux部署(四)

热门文章

  1. mysql 5.7.18 winx64安装配置方法
  2. vue组件定义全局方法
  3. python 文件保存 出错
  4. vue双向绑定(数据劫持+发布者-订阅者模式)
  5. ssh连接docker镜像ubuntu与debian
  6. Asp.net core 学习笔记 ( ef core )
  7. 20181013xlVba据成绩条生成图片文件
  8. 《完美应用ubuntu》之全面管理ubuntu软件源
  9. Codeforces Beta Round #64D - Professor's task
  10. 第二阶段——个人工作总结DAY03