方法(函数)的特点:
1, 重载: 发生在同一个类中
方法名相同、参数列表不相同。和返回值没有关系
2, 重写: 发生在子父类中
方法名相同、参数列表相同、返回值相同 (子父类中的方法一模一样)
在继承中重写需要注意的细节:
1, 父类中的private成员函数,不参与子类中方法重写。
如果子类中存在一个和父类中私有方法相同的方法时,子类中的方法不是重写方法,它是子类中定义的属于子类自己的方法(父类中私有的方法不参与子类方法重写)
2, 子类中重写方法的访问权限必须大于或等于父类中方法的访问权限
package cn.demo;
class Father {
Father(int i) {
System.out.println("father construct function");
}
void method() {
System.out.println("father method function");
}
}
class Child extends Father {
Child() {
super(1);
System.out.println("Child construct function");
}
public void method() {
super.method();
System.out.println("Child method function");
}
}
/*
* 1 父类中的private成员函数,不参与子类中方法重写。
如果子类中存在一个和父类中私有方法相同的方法时,子类中的方法不是重写方法,
它是子类中定义的属于子类自己的方法(父类中私有的方法不参与子类方法重写)
* 2, 子类中重写方法的访问权限必须大于或等于父类中方法的访问权限
*
* 3, 父类中的static方法,子类在重写时也需要静态重写
*
*/
public class Demo {
public static void main(String[] str) {
Child c = new Child();
c.method();
}
}