重写:
重写(Override)是父类与子类之间的多态性,实质是对父类的函数进行重新定义,如果在子类中定义某方法与其父类有相同的名称和参数则该方法被重写,不过子类函数的访问修饰权限不能小于父类的;若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法,如需父类中原有的方法则可使用 super 关键字。
理解:
- 需要在两个类中的进行
- 必须拥有相同的参数和名称
- 限定词一定要比父类要大(public,private,etc)
- 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常(这一点暂时还不理解)
(下图来源:本文为CSDN博主「wintershii」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wintershii/article/details/80558739
重写还不是很理解,借用他人的代码,侵删)
public class Father {
public static void main(String[] args) {
// TODO Auto-generated method stub
Son s = new Son();
s.sayHello();
}
public void sayHello() {
System.out.println("Hello");
}
}
class Son extends Father{
@Override
public void sayHello() {
// TODO Auto-generated method stub
System.out.println("hello by ");
}
}
重载:
重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个数和参数类型来决定具体使用哪个方法的多态性)。
理解:
-
同一个类中
-
名称相同
-
参数类型和数量不同
-
返回值类型可以相同也可以不同
常见加法中:
public static int add(int a,int b)
{
return a+b;
}
public static double add(double a,double b)
{
return a+b;
}