学习Java语言的过程中,对于多态的理解是非常关键的,理解了多态也就意味着打开了理解Java各种“抽象”的大门。
所谓的“多态”,简单的理解就是对象在不同情况下的不同表现,具体体现在定义和功能两个方面,简单的总结一下,多态可以用“三个定义和两个方法”来总结。三个定义分别是父类定义子类构建、接口定义实现类构建和抽象类定义实体类构建,而两个方法分别是方法重载和方法重写。
方法重载的概念比较好理解,简单的说,就是在同一个类中,定义了多个方法,具有相同的方法名称和不同的参数列表。方法重载只看名称和参数列表,其他的都不看,包括返回值类型、属性修饰符、范围限定等,这些都不影响方法重载的概念。
方法重写可以用“一个前提、三个相同和两个规定”来总结,前提是在继承体系结构下,三个相同代表子类中定义的方法与父类中的方法,具有相同的名字、参数列表和返回值类型,两个规定分别是子类方法的范围限定不能比父类方法的范围小,以及不能抛出更多的异常。当然,final类型的方法和static类型的方法是不能被重写的。
父类定义子类构建还是比较好理解的,但是如果采用了这种定义方式,也就意味着对象本身并不能调用子类独有的方法,而如果调用的方法恰好覆盖了父类中的方法,则还涉及到“虚方法”的概念,实际上执行的是子类方法体中的功能语句。
接口定义实体类构建是Java中非常常见的一种多态形势,而且由于接口属于全抽象方式,所以这种方式可以在很大程度上提升程序的“健壮性”,也是比较推荐的编程方式。采用接口定义类构建的方式,可以在很大程度上提升代码的可复用性。
抽象类定义实体类构建是接口定义方式的一种扩展,通常可以用在代码的模块内部,从而提升代码的内聚性。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!
举报/反馈

IT人刘俊明

13.5万获赞 4.9万粉丝
专注于计算机领域的科研和教学,欢迎私信!
研究生导师,中国科学院大学
关注
0
0
收藏
分享