java中API接口之个人心得

本文分享了关于Java API接口使用的一些个人心得。解释了接口不能实例化,只能通过实现类来调用其方法。举例说明了类如何实现接口,并通过子类继承展示方法的继承关系。同时,针对API中接口与类的关系,如ArrayList与AbstractList,以及equals方法的继承和调用进行了深入解析,强调了开发者不需要在子类中重复定义lang包下的公共方法,除非有特定需求或功能重写。

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

java中API接口之个人心得 -由面向对象转到API很多小伙伴们会出现这样或者那样的疑问,把继承、多态、封装放在面向对象里就会用,而把里面的理论放到API中就显得束手束脚,这里针对使用API接口类方法做一点解析。首先我们都很明确,接口不能实例化,只能通过实现类来实现它的方法,这里先用一个简单的例子来温习下接口:package collectiontext;/* * 需求: * 定义一个接口,用另一个类继承并实现接口中的一个方法, * 然后在用一个类来实现接口的另一个方法看是否报错 *///定义接口,并在接口声明两个方法interface Student{public abstract void show();public abstract void method();}//类B实现了这两个方法class B implements Student{public void show(){System.out.println("我重写接口中的show方法");}public void method(){System.out.println("我重写了接口中的method方法");}}//类C继承了类Bclass C extends B{ }public class InterfaceTest {public static void main(String[] args) {//创建多态Student对象,并调用方法Student s=new B();s.show(); //我重写接口中的show方法s.method(); //我重写了接口中的method方法System.out.println(s); //collectiontext.B@1581593Student B=new B();B.show(); //我重写接口中的show方法System.out.println(B); //collectiontext.B@1f06dc3//创建C对象,调用从父类继承的方法C c=new C();c.show(); //我重写接口中的show方法System.out.println(c); //collectiontext.C@1b64e6a}} 在例子中我们知道几个信息:1、接口不能实例化,接口可以看成实现类对象的附加功能 2、类实现接口必须实现接口的所有方法。这样类就实现了接口的所有功能,而且类还可以有自己的功能,实际上还可以调用接口的属性。 3、子类继承父类的所有非私有的方法和属性。搞明白了这几个,我们的API接口的实现就容易多了,举个例子,有些小伙伴提出这样的问题已知:API查文档知类:ArrayList, 类AbstractList 接口 Collection,接口中的抽象方法equals其中类ArrayList继承类AbstractList,而类AbstractList实现了接口Collection问?既然类ArrayList继承类AbstractList为什么在ArrayList中找不到equals方法呢?其实问这个问题,就已经被API绕进去了,因为实际上ArrayList中是有equals的,只不过没写出来,为什么呢?这其实是开发者的伟大之处,我们知道所有在lang包下的方法可以直接调用而不必导包或创建对象,因为所有的包都是在lang包之下的,所有在lang包之下的方法都是被其他包所共享的,换句话说,因为equals方法在lang包下已经有了,而且可以不用导包不用创建对象就直接用,不管是AbstractList还是ArrayList下面有没有equals方法都没有意义(实际是有的,因为它们都单层或多层继承自lang包,所以它们应该具有超类的方法);而从开发者角度来说,完全没有必要多此一举再在子类中把lang包下的方法再写一遍,除非你的类中对lang包中的方法进行了重写,赋予了另外功能,或者在某个类中需要特别做一下说明,在就是版本不一样。类似的还有hashCode()等,小伙伴们可以在使用过程中自己总结。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值