重写(Override)、重载(Overload)和继承

重写(Override)、重载(Overload)和继承

🗨

一 概述

1.什么是重载?

利用形参区分同一个类中多个同名方法的机制叫做重载。

2.什么是重写?

子类继承父类,重写父类方法的过程叫做重写。

二 对比

1.发生范围

重写发生在父类与子类之间,涉及两个类,重载发生在同一个类内部。

2.约束

重写

  1. 子类在重写父类方法时返回值必须是父类方法返回值的子类。
  2. 不能降低父类的访问权限,即假如父类方法的访问权限是protected,子类在重写方法时不能修改为private。
  3. 抛出的异常必须是父类异常的子类。
  4. 静态方法不能被重写。
  5. final类型的方法不能被重写。

重载
重载正是根据方法的形参来区分同名的方法,所以同名方法间形参不能完全相同,参数类型与个数完全相同,顺序不同,属于不同形参。


 

面向对象特征之继承

 

1.什么是继承?

使一个类拥有另一个类全部公开的属性与行为的一种机制。

2.继承的目的

假如一个类拥有另一个类的全部行为与属性,并且这些属性与行为数量较大,同时为其他类所共享,可以将这个类定义为子类去继承另一个类,实现代码复用。

3.继承的影响

子类拥有了父类中非private的方法与属性。

4.继承的限制

  • 构造方法:任何一个类中都有一个默认的无参构造方法,一旦显式地创建了有参构造方法,默认的无参构造方法就被清除。子类的无参与有参构造方法中默认调用父类的无参构造方法,如果父类中不存在无参构造方法,编译无法通过。补充:抽象类中有构造方法,接口中没有构造方法。先初始化成员变量,后调用构造方法。
  • 单继承:在java中一个类只能通过extends关键字继承一个父类。
  • 方法重写:参考http://www.cnblogs.com/tonghun/p/7141790.html。
  • 耦合度:子类继承了父类,子类对父类存在较大的依赖,父类发生变化时对子类的影响较大。

5.使用条件

因为一个类只有一次继承机会,而且继承会增加耦合度,出于维护继承机会与降低耦合度的考虑,只有在一个类与另一个类相同的方法较多时,才考虑使用继承,否则可以考虑实现接口,或者采用设计模式,如装饰者模式。

6.接口继承

一个接口可以继承多个接口,这样就拥有其他接口的抽象方法,自身不需要实现这些继承的抽象方法。


频道:电脑
扫描本文章二维码可手机访问: