一、方法
构造方法,也叫构造函数(系统默认为无参方法)
public Person 构造方法public void Person 普通方法
类名 对象名=调用旧的创建新的 方法
Student stu= new Student();
二、方法重载
1. 方法重载的含义:
同一个类中,方法名相同,参数列表不同(参数类型不同、参数个数不同、参数顺序不同)
2. 能达到重载效果所必须满足的条件:
(1) 方法名完全匹配;
(2) 参数列表必须不同(个数不同、类型不同、参数类型排列顺序不同等)。
(3) 方法的参数签名完全匹配;
(4) 方法的返回类型和方法的修饰符可以不匹配也可以匹配。
3. 方法重载的注意事项:
(1)写成参数类表相同(个数,类型,顺序)的方法重载不是重载。
(2)仅仅返回类型不同不足以成为方法的重载。改变返回值类型不会有影响,所以返回值类型不能作为程序运行时选择函数的一个标准。
(3)重载是发生在编译时的,因为编译器可以根据参数的类型来选择使用哪个方法。
三、方法重写
1. 方法重写的含义:
当子类继承父类时,可以从父类继承它的属性和方法,如果从父类继承的方法不能满足子类的需求,可以对其进行改写。
2. 能达到重写效果所必须满足的条件:
(1)只能存在于子类和父类之间;
(2)子类的方法名称、参数列表与原方法完全匹配;
(3)返回值类型完全一致或子类方法返回值类型是原父类方法返回值类型的子类型(从Java SE5开始支持);
(4)权限不能比父类方法更加严格(即不允许缩小子类方法所覆盖方法的访问权限/访问性差);
(5)子类方法不能抛出比所覆盖方法更多的异常;
*被重写的方法“三不”原则:
final:final修饰的方法无法重写。
Private:否则在其子类中只是新定义了一个方法,并没有对其进行重写。
Static:如果父类中的方法为静态的,而子类中的方法不是静态的,但是两个方法除了这一点外其他都满足重写条件,那么会发生编译错误;反之亦然。即使父类和子类中的方法都是静态的,并且满足重写条件,但是仍然不会发生重写。因为静态方法是在编译的时候把静态方法和类的引用类型进行匹配。
3. 方法重写的注意事项:
(1)重写的前提是先继承了父类的方法;
(2)在JDK1.5之后,重写方法的返回值类型可以和父类中的方法返回值类型兼容 (引用类型之间);
(3)如果子类中成员变量、静态变量、静态方法和父类中成员变量、静态变量、静态方法相同,不是重写而认为是隐藏。只有非static成员方法之间才是重写。
Copyright © 2017 Jin Hanquan. All rights reserved.