面向对象编程的学习心得

本文介绍了面向对象编程的核心概念,包括接口的使用,强调接口中的规约独立性,方便维护;继承的概念,提高代码复用性,以及Java中单继承的特点;重写和重载的区别,重写需保持一致性,重载则可通过参数列表不同进行区分;最后探讨了泛型的多态特性及其在编译时类型擦除的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本章的开始,我首先学习了接口,接口是用来设计ADT的一个方法,在接口中,我们设计各类方法和规约,这样将一个类的规约条件和他的实现分隔开,用户只能了解到规约,参数类型和返回值类型,而不能看到实现类的方法,所以这样的设计遵守了表示独立性,这样也方便了维护人员该ADT的规约,因为省去了实验代码,更加容易查找。

 

在学习接口的过程中,我还发现了其中的一个规律,那就是在接口中没有构造器,也无法保证所有实现类中都包含了同样名字的构造器。

之后学习了继承,继承关系是通过 extends 关键字产生的,如果我们要设计的多个类中存在相同属性和方法,那我们在设计中可以将这些内容抽取到单独一个类中,让另外的类继承这个父类,就无需再定义这些属性和行为。这方便了我们的设计。子类可以直接访问父类中的非私有的属性和行为,也就是无法继承父类中私有的内容,我们要了解到这一点。这提高了我们在编写代码时的复用性,缩短了编程时间,减小了任务量,而且让我们的工作更加有条理。

在继承中,java语言只支持继承一个父类的情况,不允许多重继承,但是多个类可以继承一个父类,此外继承还被分为两种:普通继承和严格继承,在严格继承中子类只能方法,无法重写方法。实现严格继承,与需要在每个方法前用final修饰即可,这样就禁止了重写。

之后,又学习了重写的含义,重写的方法和之前的的参数类型,方法名,返回值类型都相同,对于限制条件,只能更加宽松,不能更加严格,可视性可以扩大,但不能缩小。紧接着又学习了重载,重载的参数列表必须和之前的不同,可以改变返回值的类型,也可以改变可视性,也可以改变异常的情况,即可以改变规约情况,在这,我自己对重写和重载进行了对比,对于参数表,重写的方法不能进行改变,而重载必须改变,对于返回值类型,重写也不能改变,重载则可以改变也可以不变。对于规约限制,重写可以不变或者变的更加宽松,重载可以随意改变,决定调用重写方法还是父类方法是在运行时,对象的类型决定的,而重载中,在编译时参数类型就进行了匹配,在编译时就决定了运行哪一个函数。

 

最后学习了泛型,这是一个重要的多态类型,他可以让我们在类或方法中预支地使用未知的类型。当编译时,泛型类型信息被删除,所以不能使用instanceof()检查泛型类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值