概述
1、什么叫方法的重载?
在一个类中,拥有同一个方法名称,但是 参数个数不同
和 参数类型不同
的方法,就叫方法的重载。
public class Perple {
public void tell() {}
// 重载 tell() 方法
public void tell(String name) {}
// 重载 tell() 方法
public void tell(String name, int age) {}
// 重载 tell() 方法
public void tell(String name, int age, String address) {}
}
2、什么叫方法的重写?
类与类之间存在单继承的关系,子类拥有与父类相同的方法,包括( 方法名称、参数类型、返回值类型全部相同
) 就叫方法的重写。
public class A {
public void tell() {
System.out.println("我是父亲类A!");
}
}
public class B extends A {
// 重写父类的 tell() 方法
public void tell() {
System.out.println("我是子类B!");
}
}
方法的重写
1、在继承中,存在着重写的概念,其实就是子类定义了和父类同名的方法。
2、定义:方法名称相同,返回值类型相同,参数也相同。
3、访问权限:private
< default
< public
4、重写限制:被子类重写的方法不能拥有比父类更加严格的访问权限
public class People {
void say() {} // 父类 say 方法,访问权限为 default
}
public class Student {
private void say {} // 会报错,private 的访问权限 比 default 更加严格
void say() {} // 不会报错,重写的 访问权限与父类相同
public void say() {} // 不会报错,重写的 访问权限 大于 父类访问权限
}
super 关键字
1、super关键字 强行调用父类方法进行执行
。
2、super不一定在重写中进行使用,也可以表示那些方法时从父类中继承而来的。
final 关键字
1、final关键字在java中被称为完结器
,表示最终的意思。
2、final能声明 类
、方法
、属性
使用final声明的 类不能被继承
使用final声明的 方法不能被重写
使用final声明的变量是常量,常量是不可以被修改的
重写与重载的区别
区别点 | 重载 | 重写 |
---|---|---|
单词 | Overloading | Overriding |
定义 | 方法名称相同,参数的类型和个数不同 | 方法名称、参数类型、返回值类型全部相同 |
权限 | 对权限没有要求 | 被重写发方法不能拥有比父类更加严格的权限 |
范围 | 发生在一个类中 | 发生在继承中 |