// 重写 与 super
class Father {
public void tell() {
System.out.println("父类:创建了一个方法");
}
}
class Son extends Father {
public void tell() { // 方法名与父类里面的一样
super.tell(); // 使用super关键字调用父类里面的方法
System.out.println("子类:重写了方法");
}
}
public class index10 {
public static void main(String[] args) {
Son per = new Son();
per.tell();
}
}
子类定义了与父类名称相同的方法,返回值类型相同,参数也相同。
如上面的代码:不使用super关键字将只会打印 “子类:重写了方法”;使用之后打印 “父类类:创建了一个方法” “子类:重写了方法”
被子类重写之后的方法不能拥有比父类更加严格的访问权限。
访问权限: private < default < public
private:私有的;只能在当前类里面被访问;default:能在当前包下被访问;public:在整个工程下都可以被访问;
super关键字:强行调用父类的方法;
重写与重载的区别:
重载:方法名称相同,对权限没有要求,发生在一个类中。
重写:方法名称、参数类型、返回值类型全部相同。被重写的方法不能拥有比父类更严格的权限。发生在继承中。