一、方法的重载与重写
方法重载(overload)是让类以统一的方式处理不同类型数据的一种手段。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。
所谓方法重载是指在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表不同指:参数的个数、参数类型或者参数的顺序不同。
在使用重载方法的时候需要注意以下几点:
1、在使用重载时只能通过不同的参数列表,必须具有不同的参数列表。
2、不能通过访问权限、返回类型、抛出的异常进行重载。
3、方法的异常类型和树木不会对重载造成影响。
4、可以有不同的返回类型,只要参数列表不同就可以了
5、可以有不同的访问修饰符
方法的重写(override)是子类在继承父类的方法时,方法不满足自身需求的时候,对方法进行的重写
重写的规则:
1、父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,否则不能称为重写,而是重载。
2、父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写而是重载。
3、Java中规定。被子类重写的方法不能拥有比父类方法更加严格的访问权限。
4、由于父类的访问权限修饰符的限制一定要大于被子类重写的方法的访问权限修饰符所以某一个父类的方法的访问修饰符为private就不能被子类重写、
5、如果在继承过程中父类当中的方法抛出异常,那么在子类中重写父类的该方法时,也要抛出异常。而且抛出的异常不能多于父类的异常。
方法重写与方法重载的区别
二、构造方法的特点和作用
构造方法的特点:
1:方法名称和类同名
2:不用定义返回值类型
3:不可以写retrun语句
4:构造方法可以被重载
作用:
给对象初始化
构造方法的细节:
当一个类中没有定义构造函数时,系统会默认添加一个无参的构造方法。当在类中自定义构造方法之后,默认的无参构造方法消失(如果需要无参构造方法需要手动添加)
1、构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带返回值。
2、构造函数的功能主要用于在类的对象创建定义时 初始化的状态。构造函数没有返回值,也不能用void来修饰,这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值。即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让普通方法自动返回些东西,而这些就会不安全。
3、构造函数不能直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它时就会被调用。
4、当定义一个类的时候,通常情况下都会显示该类的构造函数,并且在函数中指定初始化的工作也可以省略,不过java编译器会提供一个默认的构造函数,此默认构造函数是不带参数的,而一般方法不存在这一特点。