方法重载概念:在一个类中,允许定义多个同名的方法,但是 形参列表必须不同。
语法要求:
1) 方法名 大小写必须完全 相同
2) 形参列表 必须不同(类型/数量/顺序 任一项不同都属于方法重载)
3) 修饰符 返回值类型 异常 不考虑
注意:1)只有方法名不同 编译正确,但 不是方法重载,是 单独的一个普通方法。
2) 只有形参变量名不同 不是方法重载;
3) 有了方法重载,在调用时 会对方法参数进行 类型的精确匹配;精确匹配匹配不到,则参数进行类型自动转换 就近类型转换;否则报错。
构造方法,也称构造器,是类中的特殊方法。
语法要求: 1) 位置:类以内,其它方法以外;
2) 方法名称, 必须 和类名 大小写完全一致;
3) 没有返回值类型,连void都没有 修饰符 方法名/类名(形参列表)异常{ }
注意:1) 构造方法 在每次创建对象时,会被JVM自动调用;
2) 构造方法 不允许 通过程序代码 手动调用;
3) 构造方法的作用:用于 创建对象 时使用, 通常给属性赋值;
4) 构造方法 支持 方法重载;
5) 如果在一个类中,没有任何构造方法 则系统自动分配一个 public的默认无参构造方法;
6) 在一个类中,如果写构造方法, 建议 定义public的无参构造方法。
方法覆盖:在子类中 定义和父类 中 相同的方法,称方法覆盖。
语法要求: 1) 方法名称、返回值类型、参数列表 必须相同;
2) 访问修饰符 可同或更宽(详见下面讲解);
3) 不能比父类 抛更多更广的异常(详见“异常”章节)。
注意:子类中 有了方法覆盖, 执行时 以子类方法 优先。