向上转型
何为向上转型?
父类的引用,引用子类的对象
表现形式
- 直接赋值
Student stu = new collegestudent("df","soft");
- 方法传参
3.返回值接收
动态绑定
满足动态绑定的条件:向上转型并且通过父类调用子类重写的方法
编译时:调用父类的方法;运行时:调用子类重写的方法。
方法重写(覆写、覆盖)
:子类实现父类同名方法,并且参数的类型和个数完全相同。
public class Animal {
public void eat() {
System.out.println("Animal eat");
}
public static void main(String[] args) {
dog dog = new dog();
dog.eat();
}
}
class dog extends Animal{
@Override
public void eat() {
System.out.println("dog eat");
}
}
方法重写和方法重载的区别
方法重写(override) | 方法重载(overload) |
---|---|
方法名相同 | 方法名相同 |
参数类型和个数相同 | 参数列表不同 |
返回值相同 | 返回值不做要求 |
子类中重写父类的方法 | 同一个类中 |
方法重写注意事项:
- 普通方法可以重写,static修饰的方法不能重写
- 要重写的方法不能被private修饰
- final修饰的方法不能被重写
- 需要重写的方法的访问修饰限定符的权限要大于等于父类方法的访问修饰限定符