本系列博客汇总在这里:Java系列_汇总


一、重写
  1. 在子类继承父类时,子类的方法和父类的方法相同(访问修饰限制符,返回值类型,方法名,参数列表),方法体不同的。这种子类的方法将父类的方法覆盖掉叫重写。所以外部创建子类调用该方法的时候一定是调用了子类的方法。
  2. 示例
    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();//父类方法被覆盖
    	}
    }
    
    Java系列(14)——方法的重写与重载_重载与重写
二、重载
  1. 示例
    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;			
    	}				
    }
    
    Java系列(14)——方法的重写与重载_java_02
四、重写和重载的区别
  1. 重写(override):在父子类的继承中有相同的方法,唯一不同的就是方法体。一般是父类的该方法满足不了子类的需求所以才发生重写。
  2. 重载(overload):重载是在同一个类中,有着相同的方法名,但是参数的数据类型或者参数的个数不同这两个方法就是重载,重载的目的:节省类中的命名资源和提高代码的可读性。

如有错误,欢迎指正!