方法重写
概念 子类中出现和父类中一样的方法声明(方法名,参数列表),我们称这个方法是子类重写的方法 应用场景: 子类需要父类的功能,但是父类的该功能不能满足子类需求,子类便重写该方法 @Override重写注解 放在重写方法上作为重写是否正确的校验注解;加上之后方法必须重写,增加代码安全性,可读性 加上注解后如果重写出错,编译阶段会出现提示 例如:手机都可以实现通话和发短息 但是功能机只能语音通话和发送文字短信 智能机:可以视频通话,发送图片信息
public class Test {
public static void main ( String [ ] args) {
NewPhone hw = new NewPhone ( ) ;
hw. call ( ) ;
hw. sendMsg ( ) ;
}
}
class NewPhone extends Phone {
@Override
public void call ( ) {
super . call ( ) ;
System . out. println ( "开始视频通话~~" ) ;
}
@Override
public void sendMsg ( ) {
super . sendMsg ( ) ;
System . out. println ( "发送有趣的图片~" ) ;
}
}
class Phone {
public void call ( ) {
System . out. println ( "打电话~" ) ;
}
public void sendMsg ( ) {
System . out. println ( "发短信~" ) ;
}
}
方法重载
概念 同一个类中,多个方法名称相同,形参列表不同(形参个数,类型,顺序不同,不用关心形参名称) 应用场景 适用于相似功能的应用场景,通过形参列表不同实现功能差异化。 java虚拟机根据参数列表不同来区分同名方法 例如:
public class test {
public static void main ( String [ ] args) {
System . out. println ( sum ( 1 , 2 ) ) ;
System . out. println ( sum ( 1 , 2 , 3 ) ) ;
}
public static int sum ( int a, int b) {
return a + b;
}
public static int sum ( int a, int b, int c) {
return a + b + c;
}
}