zoukankan      html  css  js  c++  java
  • 重写与重载(摘抄笔记)

    重写(Override)

    重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。

    • 重写的好处:子类可以根据需求,定义自己的与众不同(即子类可以根据需求实现父类的方法)

    方法的重写规则:

    • 参数列表必须完全与被重写方法的相同。

    • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类

    • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。

    • 父类的成员方法只能被它的子类重写。

    • 声明为 final 的方法不能被重写。

    • 声明为 static 的方法不能被重写,但是能够被再次声明。

    • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。

    • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

    • 构造方法不能被重写。

    • 如果不能继承一个方法,则不能重写这个方法。

    重载(Overload)

    重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

    每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

    重载规则

    • 被重载的方法必须改变参数列表(参数个数或类型不一样);

    • 被重载的方法可以改变返回类型;

    • 被重载的方法可以改变访问修饰符;

    重写与重载区别

    (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同

    (2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法

    (3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。

     

  • 相关阅读:
    Max History CodeForces
    Buy a Ticket CodeForces
    AC日记——字符串的展开 openjudge 1.7 35
    AC日记——回文子串 openjudge 1.7 34
    AC日记——判断字符串是否为回文 openjudge 1.7 33
    AC日记——行程长度编码 openjudge 1.7 32
    AC日记——字符串P型编码 openjudge 1.7 31
    AC日记——字符环 openjudge 1.7 30
    AC日记——ISBN号码 openjudge 1.7 29
    AC日记——单词倒排 1.7 28
  • 原文地址:https://www.cnblogs.com/bzbz/p/11493719.html
Copyright © 2011-2022 走看看