多态(一)

父类类型指向子类引用。

多态使用最多的时候在接口。

一、方法重写(方法重写是实现多态的基础)

为什么采用方法重写,而不是新写一个方法,在这个新方法里面调用父类的方法?这两种做法的方法体是一样的。

答:采用方法重写时,当调用方法时,系统会先在子类里面寻找相应的方法,如果没有,才会去父类里面找相应的方法。如果写一个新方法当然也可以,从功能上来说也没有任何问题,但是需要新写一个方法。从代码的简洁度、命名等角度来说不太好,所以采用重写。       其实就是因为多命名一个方法麻烦,如无必要,勿增实体。

注:如果在方法重写中没有调用父类的对应方法,则系统不会执行父类对应的方法。

重写要求:

1、重写方法必须与被重写方法具有相同的方法名

2、重写方法必须与被重写方法具有相同的参数列表

3、重写方法必须与被重写方法具有相同的返回值类型

4、重写方法不能缩小被重写方法的访问权限


重载与重写:

1、重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关。

2、重写涉及的是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同。

二、Object类

1、Object类是所有类的祖宗类,但是并不是显式继承。

2、Object类的equal方法与 == 

Object类的equal方法与==没区别,都是比较地址的;

当需要从其他方面去判定两个东西是否相等时,需要重写equal方法;

String类中的equal方法已经重写过了。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 父类与子类 在Java术语中,如果C1类扩展自另一个类C2,我们称C2为父类,也称超类或基类,称C1为子类,也称次...
    Steven1997阅读 4,994评论 1 2
  • 1.面向对象三大特性 -封装性 -继承性 -多态性 2.什么是封装 封装性就是隐藏实现细节,仅对外公开接口。 3....
    梦夜繁星阅读 4,755评论 0 6
  • 前言 前面我们已经介绍过了C++中的类与函数,不熟悉的,可以去看看NDK开发---C++学习(三):类与函数(上)...
    zhang_pan阅读 3,424评论 0 3
  • 坚强久了,也会累,也会想要被呵护。只是,习惯让我继续着,继续假装,继续坚强,继续微笑…… 说好的不管不顾,说好的不...
    敏君子阅读 3,030评论 0 1
  • 容器--Map(键值对) 最具逼格的冒泡排序 lambda表达式,匿名内部类的使用 泛型的使用
    yangyangyjj阅读 1,534评论 0 0