Java-重载与重写
一 方法的重载与重写(覆盖)区别
二 方法的重载实例
package cn.xxm.overload; public class TestOverload { public static void main(String[] args) { People xxm = new People();//创建对象 xxm.eat();//调用方法1--->希小木吃苹果 //调用方法2--->希小木吃了2个苹果 System.out.println("希小木吃了"+xxm.eat(2)+"个苹果"); xxm.eat(1,"西瓜");//调用方法3--->希小木吃了1个西瓜 } } //创建People类 class People{ public void eat() { System.out.println("希小木吃苹果"); } /* public int eat() { return a; }//单独返回值类型不同不能构成重载 */ //创建方法2(与方法1构成重载---返回值类型不同不影响,参数个数不同构成重载) public int eat(int a) { return a; } //创建方法3(与方法1和方法2构成重载---参数个数及类型不同构成重载) /**构成重载的几个方法都在同一个类中*/ public void eat(int a,String s) { System.out.println("希小木吃了"+a+"个"+s); } }
运行结果如下:
本例中,在People类中创建了3个方法,他们相互构成重载,在测试类中一个对象调用该函数时传入不同的参数将获得不同的运行效果
三 方法的重写实例
1 package cn.xxm.Overide; 2 /**本类用于重写关系测试*/ 3 //测试类 4 public class TestOverride { 5 public static void main(String[] args) { 6 //5.创建父类对象测试jump方法的功能 7 Xxm x1 = new Xxm(); 8 x1.jump("希小木"); 9 System.out.println("--------------------------------"); 10 //6.创建子类对象测试jump方法的功能 11 Mxx x2 = new Mxx(); 12 x2.jump("希小木"); 13 } 14 } 15 16 //1.创建父类Xxm 17 class Xxm{ 18 //2.创建jump()函数 19 public void jump(String s) { 20 System.out.println(s+",would like to jump with us?"); 21 } 22 } 23 //3.创建子类Mxx,使用extends关键字 24 class Mxx extends Xxm{ 25 //4.重写父类中的jump()函数---权限修饰符不小于父类的,方法签名(返回值类型&方法名&参数列表 )保持一致 26 public void jump(String s) { 27 System.out.println(s+"在学java呢~");//方法体实现功能与父类不同(重写) 28 } 29 }
运行结果如下:
本例中,分别创建了父类Xxm和子类Mxx,在子类中重写父类的jump()方法,在测试类中创建不同的对象调用该函数时将获得不同的运行效果