首页 新闻 搜索 专区 学院

接口和实现接口,继承又是怎么回事

0
悬赏园豆:50 [已解决问题] 解决于 2018-06-06 17:50

  接口到底有什么作用?我的理解是接口就是告诉别人能做什么,而不知道怎么做的!但是我从来没有体验过接口给我带来的好处,也许是我体验到了自己却没发觉!所以求大牛们帮忙,给我通俗的解释解释,最好有代码的参照  

  继承,继承是什么?为什么要继承?怎么算是继承?最好有代码和解释

  求助,菜鸟一枚,好多都不理解......只能死硬的去编程

问题补充:

理论我都模糊看懂,但是总是没法理解。我希望不只是单纯的理论解释!!!谢谢

ly丶乐的主页 ly丶乐 | 初学一级 | 园豆:12
提问于:2016-05-27 11:31
< >
分享
最佳答案
0

这个东西我想说,有不想说。我当初学也是一头雾水,焦头烂额,一直急切得想搞清楚。

后来随着代码越写越多, 不知不觉,就觉得他们是那么的好理解,那么的有用。

所以,你可以只看下概念,先放放,多写代码吧。

下面是我自己的笔记,你看吧

 

-------------------------------------------------

接口的作用是什么?

在OOP编程范式中,程序实质是对象与对象之间的相互作用。那么,有些对象之间需要达成公约,以便他们能识别对方。

简而言之,一个类实现了某个接口,就能说明它能做什么 ( can do  ) ,或者拥有什么(  has  ),这样其他对象就能对他进行相应的操作。

你没发现你使用过的好多接口都是xxxable吗,比如Comparable  ,  Iterable  Cloneable。

另一方面,java是强类型语言,利用接口还可以实现多态,因为接口在某些时候,我们也可以把它看做是一种 类型。

接口的特点:

1、接口中,方法的修饰符默认是public abstract,字段默认的修饰符是public static final 

2、接口不能实例化出对象,接口是用来被其他类实现的(implements),或者被其他接口扩展的(extends)。

3、虽然接口不能实例化,但可以定义接口变量,去引用实现了该接口的类的对象。

 

---------------------------------------------------------

1、关键字extends
 
2、A继承了B类,则A类自动拥有B类中对象的所有成员(不包括构造函数),也不包括静态成员(静态成员根本就不是用来继承的,也无需继承),只不过,A类中不能直接使用B中的private成员。
 
3、Java中的成员方法都是默认C#中那样虚拟的,可以直接在子类中重写。
      为什么要重写?随着父类被扩展,有时候父类继承过来的方法不能满足子类使用,比如你的父亲买东西都是去商场买,
       而你可能只要打开电脑登录网购平台就可以了。表达语义一样,但是执行的方式和过程不同,这就需要重写。
 
4、关键字super,指父类当前对象。可以通过super来调用父类的方法和构造函数等。调用构造函数必须是第一条语句。
      默认调用父类无参的构造函数
 
 
5、this当前类对象的引用,还可以用来调用构造函数(第一句)。super,父类的对象访问标识,还可以用来调用父类的构造函数,默认是调用父类无参数的构造函数。
 
6、继承了什么?父类的所有实例成员都被"copy"到了子类中,构造函数除外。父类的private实例成员也是被继承过来了的,只是不能访问。
 
 
继承使得子类和基类有相同的基础接口。

 

 

 

 

收获园豆:50
lulipro | 菜鸟二级 |园豆:273 | 2016-05-27 17:00
其他回答(8)
0

接口有一个实现类,在实际开发过程中最大好处是,你可以按照设计,先把接口写好,然后分配大伙干活的时候,告诉a们去用写好的接口去实现他们的具体功能,而告诉b们,去写那些已经写好但是没有具体的代码的接口,这样可以提高工作效率。并且底层和应用也通过接口做了一个很明显的分层。总的来说,代码流程更加清晰,工作效率得到提高。

继承是子类继承父类,可以有多个子类,继承的关键字 extends,比如打印机是个父类,子类就可以继承父类并且自己可以为黑白打印机、彩色打印机、各类打印机。继承可以减少重复的代码。比如父类已经提供的方法,子类可以直接使用,不必再去实现。

根目录97 | 园豆:6 (初学一级) | 2016-05-27 11:45
0

园子里有很多专门介绍的。

比如:http://www.cnblogs.com/dolphin0520/p/3811437.html

laugher_ccc | 园豆:593 (小虾三级) | 2016-05-27 11:48
0

会有这个问题的原因是你没有理解:通过抽象解决的问题

比如现在有一个业务需求.一个订单.有多个优惠请求比如在每天1点的时候打5折.还有一个在每天1点到3点的时候打减5块钱.

这时候你怎么做?直接写2段代码?那要是后天业务又来找你说再加一个活动.每天1点到2点的时候满200减20.你怎么办.

抽象的例子就是.在这个业务需求中."折扣"是可以抽象出来的.你定义个抽折扣接口.里面包含一个打折方法.传入一个订单.输出这个订单打折的优惠.然后有多少种折扣就实现多少个折扣接口.掉业务代码中循环所有的折扣类型.就处理了这个业务.

重点在:抽象业务需求.

吴瑞祥 | 园豆:28820 (高人七级) | 2016-05-27 11:57
0

理论要结合实际来应用和互相验证。多看一些示例代码,并自己思考。记住3个w!不然别人说了,也都是别人的。

czd890 | 园豆:8897 (大侠五级) | 2016-05-27 12:47
0

接口就是规范

继承就是为了省事

刘宏玺 | 园豆:14004 (专家六级) | 2016-05-27 12:59
0

接口是 Like a

继承是 Is a

xingoo | 园豆:711 (小虾三级) | 2016-05-27 13:23
0

接口你可以理解成是一个标准,就想USB,标准在这里,至于你要插U盘,鼠标等看你需求和实现,如果没有这个标准(接口),你想想你电脑要开多少口,至于继承,所有的鸟都可以飞,这些可以飞的特性我抽出来写成父类,而不同鸟的不同处可以写成子类,你可以理解成同一个爸爸,不同的儿子,每个儿子都可以用爸爸的一些东西,而不是把爸爸拷贝N分给所有儿子用

[3] | 园豆:1172 (小虾三级) | 2016-05-27 15:18
0

百度

小光 | 园豆:1830 (小虾三级) | 2016-05-30 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册