一:.重写的定义
(1) 父类有一个方法,而子类的方法和父类有些不同,那么子类就要重写覆盖,这样就称之为重写。
(2) 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。super()方法必须在功能体的第一行。
(3子类函数的访问修饰权限不能少于父类的;比如父类的访问修饰符是public ,那么子类的必须是public.
代码演示:
1.定义一个父类.
package Overload;
public class Animal {
//父类的方法
public void eat(){
System.out.println("动物吃东西");
}
}
2.定义一个子类.
package Overload;
public class Cat extends Animal{//继承了Animal类,可以去重写父类的方法
//重写父类的方法
public void eat(){//父类的访问修饰符是pulbic ,那么子类也必须是public .
//调用父类的方法
super.eat();
//重写子类独特的功能
System.out.println("猫吃鱼");
}
public static void main(String[] args) {
Animal a=new Cat();
a.eat();
}
}
输出结果是:动物吃东西
猫吃鱼
二:重载的定义
1.(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
(2)Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具
有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。
(3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。也可以无返回值。
代码演示:
package Overload;
public class Add {
public int add(){
return 1+2;
}
public int add(int a,int b){
return a+b;
}
public float add(int b,int a,int c){//和下面的方法相比,参数个数不同
return a+b+c;
}
public void add(float a,int b){//和下面的方法相比,参数类型不同
System.out.println(a+b);
}
public void add(int b,float a){
System.out.println(a+b);
}
/*public void add(int b,float c){
System.out.println(b==c);
}*/ //这样就编译不通过,和上面的方法重复了。
public static void main(String[] args) {
Add a=new Add();
a.add();
}
}