任务描述
掌握方法的重写与重载。
相关知识
1.方法的重写(override
);2.方法的重载(overload
);3.重写与重载之间的区别。
方法的重写(override
)
-
方法的重写
子类需要修改父类中定义的方法的实现,这称做方法的重写(
method overriding
)。子类中的方法与父类中的方法的名称、参数个数和类型都完全一致时,就称子类中的这个方法重写了父类中的方法。“重写”又称为“复写”、“覆盖”。 -
如何使用重写
class Super { 访问权限 方法返回值类型 方法1(参数1) { ... } } class Sub extends Super{ 访问权限 方法返回值类型 方法1(参数1) —————>复写父类中的方法 { ... } }
注意:方法重写时必须遵循两个原则,否则编译器会指出程序出错。
-
重写的方法不能比被重写的方法有更严格的访问权限;
-
重写的方法不能比被重写的方法产生更多的异常。
方法的重载(overload
)
-
方法的重载
方法重载是指多个方法可以享有相同的名字,但是参数的数量或类型不能完全相同。 调用方法时,编译器根据参数的个数和类型来决定当前所使用的方法。
-
重载的注意事项
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 无法以返回值类型作为重载函数的区分标准。
重写与重载之间的区别
方法的重写和重载是Java
多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。
-
方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载;
-
方法重写是在子类存在方法与父类的方法的名字相同而且参数的个数与类型一样,返回值也一样的方法,就称为方法的重写;
-
方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。