• JAVA-初步认识-第九章-接口和抽象类的区别


    一. 接口和抽象类之间的区别

    抽象类定义两个方法,接口中也可以定义两个方法,那么在定义的时候,到底是定义抽象类还是接口呢?

    继承和实现是两回事。

    抽烟不是学员的基本功能,是学员的扩展功能。学员要抽烟,就实现接口。

    类在确定体系,接口在确定体系中的额外功能。

    举例来说明,

    按照之前讲述的知识,程序就可以这么写,但是呢,我们对其做了一个改进

    将导盲的功能抽取出来,和不抽取,两者有什么区别呢?貌似不单独抽取好像更简便一些。但是引发的思考就是,不是说只有导盲犬有导盲的功能,其他的动物也有这个功能。

    我继承了犬,就继承了犬的基本功能,继承了导盲,就具备了导盲功能,但是不能多继承。虽然继承不成,但是接口可以。

    这样一来,两者就分工明确了。犬这个抽象类在定义的时候,定义了犬这个动物的最基本的功能。用类来定义基本功能,在问题领域分析的时候,导盲应该是额外功能。最终的形式就如下面所示。

    如果非要将导盲接口取消,将导盲功能写入导盲犬,那么程序就没有扩展性。再换个角度来说明,如果所有的导盲动能都设置在子类中,导盲犬,导盲猫,导盲猪。要想三者全部出现,要下三个命令,导盲犬上,导盲猫上,导盲猪上。这就带来了问题,有共性的内容,没有提高复用性。二,可以这么说,凡是具备导盲,全部都给我去,这样就很简答了。导盲怎么来的,是这些物种不断抽取出来的,这就显示出将导盲功能抽取出来的好处了。

    下面再说一说,问题领域中的一些分析。

  • 相关阅读:
    NET6 如何使用Windows Service
    Delphi 设置窗体无标题栏和边框
    java MD5 加密 及对应的 oracle数据库中的MD5加密实现
    oracle 查看锁表进程和解锁
    创建dblink 及 同义词
    demjson python key没有引号的字符串如何转json
    Typescript Objects对象
    typescrip 数组、Map、对象方法
    mysql 日期 时间函数
    Typesrcipt日期时间
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7818265.html
Copyright © 2020-2023  润新知