Java中方法的重写和重载
一、知识扩充
1.访问权限控制符:public>protected>default>private
2.函数的调用
(1)直接输入方法名来调用函数,如果Hello方法是静态的,那么main() 方法也必需是静态的
public static void main(String[] args) {
Hello();
}
public static void Hello() {
System.out.println("Hello");
}
(2)直接输入方法名来调用函数,如果Hello方法是非静态的,那么main() 方法也必需是非静态的
public void main(String[] args) {
Hello();
}
public void Hello() {
System.out.println("Hello");
}
(3)如果Hello方法是非静态的,main() 方法是静态的,则需要在main() 方法里面先创建一个关于这个类的对象,才可以调用非静态方法
public class Override {
public static void main(String[] args) {
Override override = new Override();
override.Hello();
}
public void Hello(){
System.out.println("Hello world");
}
二、方法重写
1.重写发生在父类与子类之间,子类继承了父类原有方法
2.在方法名,参数列表,返回值类型都相同的情况下,子类对父类的方法进行重写(关键:子类函数的访问权限大于父类的权限)
public class Override {
public static void main(String[] args) {
Hello();
Overrideson overrideson = new Overrideson();
overrideson.Hello();
}
public static void Hello() {
System.out.println("Hello");
}
static class Overrideson extends Override {
public static void Hello() {
// TODO Auto-generated method stub
System.out.println("hello world ");
}
}
}
输出结果为:
Hello
hello world
三、方法重载
1.定义:在同一个类中,同名的方法具有不同的参数列表
2.不同的参数列表:参数个数,参数类型,参数的顺序
public class Override {
/*方法的重载*/
public static void main(String[] args) {
Override s = new Override();
s.sayHello();
s.sayHello1("小明");
}
public void sayHello() {
System.out.println("hello world");
}
public void sayHello1(String name) {
System.out.println("hello"+" " + name);
}
输出结果为:
hello world
hello 小明