本系列博客汇总在这里:Java系列_汇总
目录
- 一、重写
- 二、重载
- 四、重写和重载的区别
一、重写
- 在子类继承父类时,子类的方法和父类的方法相同(访问修饰限制符,返回值类型,方法名,参数列表),方法体不同的。这种子类的方法将父类的方法覆盖掉叫重写。所以外部创建子类调用该方法的时候一定是调用了子类的方法。
- 示例
class Teacher
{
String name;
int age;
public void teachJava()
{
System.out.println("--------------------父类---------------------");
System.out.println(name+"老师在教java");
}
public void sleep()
{
System.out.println("--------------------父类---------------------");
System.out.println("刘老师在睡觉");
}
}
//父类里的同名方法被覆盖,实现子类里的方法,这就是重写
//可改变子类的方法名(不要与父类相同),再观察效果
class JavaTeacher extends Teacher
{
public void teachJava()//与父类方法同名的方法
{
System.out.println("--------------------子类---------------------");
System.out.println(name+"老师在教java");
}
public void sleep()//与父类方法同名的方法
{
System.out.println("--------------------子类---------------------");
System.out.println("康老师在睡觉");
}
}
class Welcome
{
public static void main (String[] args)
{
JavaTeacher jt = new JavaTeacher();
jt.name = "刘成娟";
jt.teachJava();//父类方法被覆盖
jt.sleep();//父类方法被覆盖
}
}
二、重载
- 示例
class Welcome
{
public static void main(String[] args)
{
int a = 1;
int b = 2;
int c = 3;
int result = compareNum(a,b,c);
System.out.println("MAX:"+result);
}
//两个数比较大小
public static int compareNum(int a,int b)
{
return a > b ? a : b;
}
//三个数比较大小
public static int compareNum(int a,int b,int c)
{
return compareNum(a,b) > c ? compareNum(a,b):c;
}
}
四、重写和重载的区别
- 重写(override):在父子类的继承中有相同的方法,唯一不同的就是方法体。一般是父类的该方法满足不了子类的需求所以才发生重写。
- 重载(overload):重载是在同一个类中,有着相同的方法名,但是参数的数据类型或者参数的个数不同这两个方法就是重载,重载的目的:节省类中的命名资源和提高代码的可读性。
如有错误,欢迎指正!