多态
多态即:父类类型的引用指向子类的对象
- 该引用只能调用父类中定义的方法和变量;
- 如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
- 变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
注:在父类与子类的关系中,调用哪个类的方法由引用决定
如果子类继承父类,并重写父类中的方法,但在使用时,并不如多态般使用,而是用父类引用指向父类对象,那么当使用父类引用调用子类重写过的方法时,实际上,此时,子类重写与否,对现在的情况无用,执行时会调用父类中的方法,而不会调用子类中的重写方法。
类的重构
开放-封闭原则,如果在实际生产环境下,当修改功能时需要去修改原来的类时,就违背了此原则,
此时需要根据单一职责原则,考虑抽象出功能类,而具体的功能类则继承抽象类,此时,修改(增加或删除)时只需要删除对应的具体功能类。
当然,正确的抽象类创建应对针对频繁变化的部分,不应盲目抽象。
重写:一大 两小
public Integer hello(int a) throws RuntimeException{}