方法重载
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
参数列表不同:
- 参数个数不同
- 参数类型不同
- 参数的顺序不同
基本的数据类型变量包括:byte、short、int、long、float、double、boolean、char
引用数据类型变量包括:数组、类、接口、枚举
子类重写父类方法
…
父类静态方法,子类也必须通过静态方法进行重写(其实算不上重写)
因为:
静态方法不是后期绑定的,它早在编译期就绑定了,换句话说,这种方法不会进行多态的判断,且只与声明的类有关。即静态绑定不支持多态,动态绑定才支持多态。
多态
成员变量: 编译看父类,运行看父类(静态和类相关,因此算不上重写,所以访问还是看父类)
静态方法: 编译看父类,运行看父类
非静态成员方法: 编译看父类,运行看子类
多态的好处
- 提高了代码的维护性(继承保证)
- 提高了代码的扩展性(多态保证)
多态的弊端
- 不能使用子类特有的属性和行为
抽象方法不能与哪些关键字共存?
final:final表示不能被子类覆盖,而abstract希望被子类覆盖
private:private私有不被继承,而abstract希望被子类继承
static:静态代表类方法,可以使用类名.调用,但是这是没有意义的,因为没有方法体