zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第九章-面向对象-接口实现implements

    一.

    接口定义完了,接下来干嘛用?你要说一抽象类的话,是不是要搞个子类去继承这个类,并覆盖里面的方法。搞接口的话,怎么办呢?也是搞个子类继承这个接口?不。

    如果你是个类的话,就搞个类去继承你,如果变成了接口的话,就不再用继承了。可以采用另外一种更直观的表现方式,叫做实现。

    为什么叫做实现呢?接口里面的方法全都是抽象的,所以必须要全实现。而对于抽象类来讲,有些东西是不抽象的,子类可以直接拿过来用的,这就是实现和继承的区别。继承可以拿过来一些我不需要做,拿过来就能用的东西,而实现是不是说,你这里面有的,我都得去覆盖,这叫实现。里面没有一个能用,全都要自己重写

    类与类之间是继承关系,类与接口之间,换一种更确切的表述方式,叫实现。

    二.

    实现怎么写呢?

    为什么写成DemoImpl,阅读性更好一些,

    一看到DemoImpl,就想到了实现了Demo接口的实现类,某一个接口的实现类,Impl是简写。一般呢,会这么去取名字。

    一个类去实现接口以后,这个接口里面有很多抽象方法,也要拿过来,和继承原理是一样的。如果里面没有抽象方法,那么它就是抽象类,(而不是接口)。再说一遍,一个类实现了接口,相当于获取了接口里面的所有内容,看下图。

    它没有去覆盖show1(),show2()这两个方法,直接拿了这两个抽象的,那它还是个抽象类,而不是接口。

    因此,实现接口以后,你想要实例化,必须覆盖所有的抽象方法。

    接口是另一种形式的抽象类,里面全是抽象方法,当然不可以实例化了。

    实现接口覆盖的时候,一定要写public(这是针对接口内的成员而言的,写法固定),否则编译会失败。方法体的内容可以自己定义了。

    接口也有了,子类也有了,接下来就是创建对象。

    上面截图中的三个输出语句哪个对?这三句话都对(我的理解是第二句和第三句,说的都是抽象类,无法实例化,但是阻碍调用么?) 第三句,接口的名称调用自己的成员,一加载语句就存在了。第二句,是子类拿过来用。第一句,是对象调用,因为你先在,我后在。无论谁调用,都不能写d.NUM=3, 因为NUM的值是final,不能被改变。

    这就是实现的特点。

  • 相关阅读:
    微信公众号开发(二)用户关注
    搭建git服务器
    微信公众号开发(三)生成带参数的二维码
    windows 安装多个mysql
    微信公众号开发(一)前期 配置
    支付宝接口之条码支付
    mysql8.0 安装 修改密码 允许远程连接
    区块链开发金融交易平台
    区块链开发 在金融融资交易平台中的优势
    2019年区块链金融交易所钱包开发需要多少钱
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7759768.html
Copyright © 2011-2022 走看看