zoukankan      html  css  js  c++  java
  • Java-接口概念辨析

    https://mp.weixin.qq.com/s/HQZhlS-ffgEMqhB2rHax1w

    1. 类        是属性成员和方法成员的集合;
    2. 父类      是子类相同属性成员和方法成员的集合;

    3. 抽象父类  是子类相同属性成员和方法成员的集合,
                   其中某些方法各个子类虽然都有(具有相同的方法签名),但实现不同,
                   所以抽象出来放到父类中,作为抽象方法存在;
                   这样的父类,也就成了抽象父类;
    4. 接口      是子类共有常量和相同方法的集合;接口只是沟通的规约,具体而言就是方法签名,不包含实现;
                 接口与父类是同一个概念层级,而非与类;
                 接口是观察世界的一个角度;

                
    命名:
    1. 类        名词
    2. 属性      名词(属性名)、形容词(对象状态)
    3. 方法      动词
    4. 接口      
                   a. 接口是方法的集合,方法的意思是:做XX;
                   b. 做有两种形式:把、被;
                   c. 被:被怎样是动作发起者的把,更应该归到动作发起者的类或接口中;
                   d. 把:把某某怎么样,即是动作发起者具有怎么样的能力;
                 形容词:“能执行XX动作的”:
                   e. 如:java.lang.Runnable, java.awt.Adjustable;
                   f. 这种方法有两个特点:
                     i. 名称跟动作绑定,所以一般这种接口只有一个方法;
                     i. 可能会有很多类能够发起这种动作,使得接口的范围拓宽的过于宽泛;
                 名词:动作的发起者
                   g. 如:Filter,可以执行filter的动作;
                 名词:动作集合的发起者,即可以发起一系列动作的发起者
                   h. 如:java.awt.LayoutManager, java.awt.MenuContainer;
                   i. 这个跟抽象类很接近,不考虑多继承的限制基本可以混用;

    总结:
    1. 相较于抽象父类,优先使用接口;
    2. 如果某些方法有共同的实现,则使用抽象父类;
    3. 优先使用“能执行XX动作的”命名接口,除非过于概念意涵过于宽泛;
    4. 如果需要多继承则必须转换为对接口的多实现;

    PS.
    5. 如果使用共同的常量,则使用接口:常量值亦是一种规约;
    6. 如果有共同的可变属性,则使用抽象父类;

  • 相关阅读:
    在Win10的注册表编辑器中如何快速跳转到相关键值?
    使用winsw给Win10添加服务
    巧把任意程序添加到Win10控制面板(添加“系统配置”为例)
    在Win8.1开始屏幕添加电源按钮
    win10中,如何隐藏此电脑中的6个文件夹?
    Win10恢复这台电脑里的6个文件夹
    解决Office 2010安装报错1907,没有足够权限注册字体。
    C#面向对象(OOP)入门—第二天—多态和继承(继承)
    C#面向对象(OOP)入门—第一天—多态和继承(方法重载)
    OpenCV与Python之图像的读入与显示以及利用Numpy的图像转换
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9108111.html
Copyright © 2011-2022 走看看