方法重载规则

  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; }; 类型错误,引用数据类型必须父类大于等于子类 */ }

Java 方法重载 方法重写的更多相关文章

  1. java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定

    1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中 ...

  2. java方法重载和重写

    1.java的方法重载和重写,表示两种不同的类型.this关键字,出现在类的构造方法中,代表使用该构造方法所创建的对象.,this可以出现在实例方法中核构造方法中.但是不能出现在类方法中.实例方法只能 ...

  3. Java:重载和重写

    Java:重载和重写 对 Java 中的 重载和重写 这个概念,做一个微不足道的小小小小结 重载 重载:编译时多态,同一个类中的同名的方法,参数列表不同,与返回值无关. 有以下几点: 方法名必须相同: ...

  4. Java类方法重载与重写

    目录 - 方法重载 - 方法重写 @(Java类方法重载与重写) - 方法重载 1.方法名相同 2.参数列表不同 public void person(double height,double wei ...

  5. 【知了堂学习笔记】java 方法重载与重写的归纳

    方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定 ...

  6. java中的方法——重载yu重写(转)

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...

  7. java——方法重载与重写、构造方法、this关键字、static关键字、strictfp关键字、类的导入

    Java SE5新增加@Override注解,它并不是关键字,但是可以把它当作关键字使用.当你想要覆写(重写)某个方法时,可以选择添加这个注解,在你不留心重载而并非覆写了该方法时,编译器就会生成一条错 ...

  8. 《Java基础知识》Java方法重载和重写

    重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类 ...

  9. java中的方法重载与重写以及方法修饰符

    1. 方法重载Overloading , 是在一个类中,有多个方法,这些方法的名字相同,但是具有不同的参数列表,和返回值 重载的时候,方法名要一样,但是参数类型和参数个数不一样,返回值类型可以相同,也 ...

随机推荐

  1. ABP捕捉异常错误代码

    在服务层或者CORE层  随便哪里都可以  创建一个捕捉异常的文件夹  里面写一个LonsidException类 继承后面的接口  然后重写继承的方法  这样在ABP项目运行阶段  无论在哪里出现异 ...

  2. try....fail....catch...Assert 模式的测试, fail是Junit中的功能

    try { // 反射读取properties文件 new BufferedReader(new FileReader(myConfigPath[4])); //上面没有抛出异常就是执行fail, / ...

  3. try catch对Spring事务的影响

    一.Spring 的默认事务机制,当出现unchecked异常时候回滚,checked异常的时候不会回滚. 异常中unchecked异常包括error和runtime异常.需要try catch或向上 ...

  4. C# 视频多人脸识别的实现

    上一篇内容的调整,提交到git了,https://github.com/catzhou2002/ArcFaceDemo基本思路如下:一.识别线程1.获取当前图片2.识别当前图片的人脸位置,并将结果存入 ...

  5. Mac批量转换mp3为caf

    创建一个sh文件,输入如下代码后运行. 遍历文件夹中的mp3然后使用afconvert命令进行转换. #!/bin/bash for i in *.mp3; do afconvert $i " ...

  6. Fiddler 手机抓包介绍

    直接打开tools -> Options 进行设置 点击OK,在这里代理就设置完成,一定要重启软件配置才生效,下面是手机端的设置. 手机端代理设置以三星S4为例子,1.如下图真机三星S4设置:找 ...

  7. C#清除HTML样式

    C#清除HTML样式 需求说明: 网站开发时我们经常用一个富文本控件让用户自己编辑新闻内容和新闻格式,然后将HTML代码一并保存到数据库中. 然后显示文章列表的时候只需要显示一个文章摘要,所以我们就计 ...

  8. python爬虫学习(二):定向爬虫例子-->使用BeautifulSoup爬取"软科中国最好大学排名-生源质量排名2018",并把结果写进txt文件

    在正式爬取之前,先做一个试验,看一下爬取的数据对象的类型是如何转换为列表的: 写一个html文档: x.html<html><head><title>This is ...

  9. ubuntu16.04安装nvidia ,cuda(待完善)

    ubuntu16.04安装nvidia 1.首先查看自己的pc显卡的型号 ubuntu16.04 查看方法: 查看GPU型号 :lspci | grep -i nvidia 查看NVIDIA驱动版本: ...

  10. 雷林鹏分享: C# 教程

    C# 教程 C# 是一个简单的.现代的.通用的.面向对象的编程语言,它是由微软(Microsoft)开发的. 本教程将告诉您基础的 C# 编程,同时将向您讲解 C# 编程语言相关的各种先进理念. 现在 ...