乐趣区

关于java:3重载与重写的区别分别是什么

1 重载(overloading) 是在一个类外面,办法名字雷同,而参数不同。返回类型能够雷同也能够不同。–》改参数类型,数量

`public class Overloading {`
 `public int test(){`
 `System.out.println("test1");`
 `return 1;`
 `}`
 
 `public void test(int a){`
 `System.out.println("test2");`
 `}` 
 
 `// 以下两个参数类型程序不同 `
 `public String test(int a,String s){`
 `System.out.println("test3");`
 `return "returntest3";`
 `}` 
 
 `public String test(String s,int a){`
 `System.out.println("test4");`
 `return "returntest4";`
 `}` 
 
 `public static void main(String[] args){`
 `Overloading o = new Overloading();`
 `System.out.println(o.test());`
 `o.test(1);`
 `System.out.println(o.test(1,"test3"));`
 `System.out.println(o.test("test4",1));`
 `}`
`}`

2 重写 (Override)
重写是子类对父类的容许拜访的办法的实现过程进行从新编写, 返回值和形参都不能扭转。即外壳不变,外围重写!
重写是父类与子类之间多态性的表现形式,重写的益处在于子类能够依据须要,定义特定于本人的行为。也就是说子类可能依据须要实现父类的办法。
子类—》父类 当须要在子类中调用父类的被重写办法时,要应用 super 关键字。

`class Animal{`
 `public void move(){`
 `System.out.println("动物能够挪动");`
 `}`
`}`
 
`class Dog extends Animal{`
 `public void move(){`
 `super.move(); // 利用 super 类的办法 `
 `System.out.println("狗能够跑和走");`
 `}`
`}`
 
`public class TestDog{`
 `public static void main(String args[]){`
 
 `Animal b = new Dog(); // Dog 对象 `
 `b.move(); // 执行 Dog 类的办法 `
 
 `}`
`}`

总结:
重载和重写都实现了多态

来自 https://www.runoob.com/java/j…

退出移动版