一:overload(重载,过载)
- 在一个类里面,方法名字必须相同,而参数不同,和返回类型无关
- 参数列表必须不同(参数类型、参数个数、参数顺序)。
- 方法的返回类型可以相同也可以不同。
- 重载与方法的访问修饰符和是否为static无关。
代码示例:
在chapter6包下,创建Dog.java文件,在Dog类下,创建display方法,方法名相同,但参数不同
package chapter6;
public class Dog {
// 无参数方法
public void display() {
System.out.println("Display method with no parameters.");
}
// 一个整型参数的方法
public void display(int num) {
System.out.println("Display method with int parameter: " + num);
}
// 一个字符串参数的方法
public void display(String str) {
System.out.println("Display method with String parameter: " + str);
}
}
在在chapter6包下,创建TestMain.java运行文件,查看运行结果
package chapter6;
public class TestMain {
public static void main(String[] args) {
Dog dog = new Dog();
dog.display();
dog.display(1);
dog.display("阿黄");
}
}
//运行结果:
//Display method with no parameters.
//Display method with int parameter: 1
//Display method with String parameter: 阿黄
二:override(重写,覆盖)
- 子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变
- 包括:返回值类型,方法名,参数类型以及个数
- 子类能够根据需要实现父类的方法
代码示例:
在chapter6包下,创建父类Animal.java
package chapter6;
public class Animal {
public void makeSound(){
System.out.println("动物叫声");
}
}
在chapter6包下,创建Duck.java文件,通过关键字extends关键字,继承Animal下的makeSound方法
package chapter6;
public class Duck extends Animal {
}
在chapter6包下,创建Bird.java文件,通过关键字extends关键字,继承Animal下的makeSound方法,并且重写makeSound方法
package chapter6;
public class Bird extends Animal{
@Override
public void makeSound() {
System.out.println("鸟叫");
}
}
在chapter6下的运行类TestMain.java中,查看继承和重写的运行结果
package chapter6;
public class TestMain {
public static void main(String[] args) {
Duck duck = new Duck();
duck.makeSound();
Bird bird = new Bird();
bird.makeSound();
}
}
//运行结果
//动物叫声
//鸟叫