继承的方法重写
重写都是方法重写,跟属性不相干。
重写必须是非静态方法(没有static修饰)。
静态方法的调用(不可以被重写)
static修饰的静态方法是随着类加载同时加载,所以不能被重写。
非静态方法是随着实例化才被加载,所以可以被重写。
正常情况图解:
谁的类用谁的方法。
调换情况图解:
(涉及多态的引用:父类的引用 指向子类,这样的作用相当于一口气可以通过 引用类型 单独 操作 两个类。)
父类可以引用子类(继承了父类)指向。但是子类无法引用父类(没有继承子类)指向。
(你继承了父类,所以子类包含类父类,所以父类可以引用子类导向他自己。
但父类里面没有你,你还是只能用你自己。)
静态方法继承的调用
静态方法 的调用只跟左边定义的类型有关
Father(跟我有关) baba =new Son()(跟我无关);
非静态方法 继承的调用 重写
重写的本质:
子类的方法跟父类的一致,只是方法体不同
重写方法的最重要4个注意点:
-
不能是含有static的静态方法。
-
方法名字一致,参数列表一致。
-
子类重写父类方法 修饰符的范围必须扩大,比如父类是protected(父类private不能被重写),那么子类重写就必须是public。
-
子类重写父类方法 抛出的异常必须缩小,子类重写后抛出异常范围必须比父类的小(待学习)
方法重写的IDEA快捷键
快捷键:alt+insert 选override Methods
快捷键:ctrl+O
@Override 后面是注解,功能的注释