重载 Overloading 当方法重载的时候方法的名称相同,但是参数类型或个数不同,发生的范围在同一个类中
例如:
public class T8 {
public static void main(String args[])
{
int z=add(10,20,30);
float t=add(10.0f,20.0f,30.0f);
System.out.println(t);
System.out.println(z);
}
public static int add(int a, int b,int c) //方法1
{
int z=a+b+c;
return z;
}
public static float add(float a, float b,float c) //方法2重载方法1
{
float z=a+b+c;
return z;
}
}
重写(复写) Override 方法名称相同,参数类型或者数目不同,方法的访问权限不能更严格,因为要继承,所以发生在继承关系之中,由子类进行覆写
例如:
abstract class Err //抽象类
{
public void printInfo()
{
System.out.println("姓名:"+this.getName());
System.out.println("班级:"+this.getCla());
System.out.println("原因:"+this.getCau());
}
public abstract String getName(); //抽象方法
public abstract String getCla();
public abstract String getCau();
}
class San extends Err //发生继承
{
public String getName() //子类中复写父类中的抽象方法
{
return "张三";
}
public String getCla() //子类中复写父类中的抽象方法
{
return "计算机4班";
}
public String getCau() //子类中复写父类中的抽象方法
{
return "上课睡觉";
}
}
class Si extends Err //发生继承
{
public String getName() //子类中复写父类中的抽象方法
{
return "李四";
}
public String getCla() //子类中复写父类中的抽象方法
{
return "计算机5";
}
public String getCau() //子类中复写父类中的抽象方法
{
return "上机期间打游戏";
}
}
public class R2 {
public static void main(String args[])
{
Err e1 = new San();
e1.printInfo();
System.out.println("****************");
Err e0 = new Si();
e0.printInfo();
}
} |