多态、重写

重写

重写:需要有继承关系,子类重写父类的方法!

  1. 方法名必须相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大但不能缩小 public>Protected>Default>private

  4. 抛出的异常:范围,可以被缩小,但不能扩大

    ClassNotFoundException < Exception

为什么要重写:父类的功能,子类不一定需要,或者不一定满足!

多态

父类的引用指向子类,对象实际能执行哪些方法,主要看对象左边的类型,和对象右边的类型关系不大!

father f = new son( );

子类:子类能调用自己的和从父类继承的所有方法。

父类:父类可以指向子类,但是不能调用子类独有的方法。

多态是为了弥补java单继承这个缺陷而设计引入的技术。

我们定义一个父类类型的引用指向一个子类的对象,既可以使用子类强大的功能,又可以抽取父类的共性。(共性:父类的所有属性和方法)

对于多态,可以总结它为:

  一、使用父类类型的引用指向子类的对象;

  二、该引用只能调用父类中定义的方法和变量;

  三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)

  四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。

多态注意事项:

  1. 多态是针对方法的多态
  2. 多态的前提是要有继承关系
  3. 存在条件:
    1. 继承关系
    2. 方法需要重写
    3. 父类引用指向子类对象

不能重写的方法:

  1. static修饰的方法,它属于类,它不属于实例
  2. final 常量不能被重写
  3. private 私有的方法不能被重写
posted @ 2021-03-06 17:46  恶的反思  阅读(204)  评论(0)    收藏  举报