多态、重写
重写
重写:需要有继承关系,子类重写父类的方法!
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大但不能缩小 public>Protected>Default>private
-
抛出的异常:范围,可以被缩小,但不能扩大
ClassNotFoundException < Exception
为什么要重写:父类的功能,子类不一定需要,或者不一定满足!
多态
父类的引用指向子类,对象实际能执行哪些方法,主要看对象左边的类型,和对象右边的类型关系不大!
father f = new son( );
子类:子类能调用自己的和从父类继承的所有方法。
父类:父类可以指向子类,但是不能调用子类独有的方法。
多态是为了弥补java单继承这个缺陷而设计引入的技术。
我们定义一个父类类型的引用指向一个子类的对象,既可以使用子类强大的功能,又可以抽取父类的共性。(共性:父类的所有属性和方法)
对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
多态注意事项:
- 多态是针对方法的多态
- 多态的前提是要有继承关系
- 存在条件:
- 继承关系
- 方法需要重写
- 父类引用指向子类对象
不能重写的方法:
- static修饰的方法,它属于类,它不属于实例
- final 常量不能被重写
- private 私有的方法不能被重写

浙公网安备 33010602011771号