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. 如果有共同的可变属性,则使用抽象父类;

Java-接口概念辨析的更多相关文章

  1. java 接口概念及使用

    package java11; /* 在任何版本的java中,接口都能定义抽象方法 格式: public abstrace 返回值类型 方法名称(参数列表): 注意事项: 1.接口当中的抽象方法,修饰 ...

  2. Java面向对象----接口概念

    接口语法 interface 接口名{ //静态常量,抽象方法 } 特点 接口中只能存放静态常量和抽象方法 java接口是对功能的扩展 通过实现接口,java类可以实现多实现 一个类可以同时继承(ex ...

  3. 高并发应用中客户端等待、响应时间的推算,及RT/QPS概念辨析

    高并发应用中客户端等待.响应时间的推算,及RT/QPS概念辨析 对于一个网站,已知服务端的服务线程数和处理单个请求所需的时间时,该如何算出高并发时用户从点击链接到收到响应的时间?注意这个时间并不等于服 ...

  4. OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例

    转自:  http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...

  5. Java接口的表现形式

    一.概念理解 Java接口是一些方法特征的集合,并没有方法的具体实现,类似于电源插座,可以充不同类型的电器,但是必须适配特定的接口规范.接口是抽象化的,所以其不能被实例化的(不能有构造函数,创建对象) ...

  6. C++ Concept 和Java 接口

    C++ Concept 和Java 接口 Concept及接口 我会用Java写个case来解释什么是C++的Concept.Concept可以理解为接口,它是一种广义的接口.不同于Java的Inte ...

  7. Java:接口继承接口 (多继承机制)

    在看API文档时,突然发现一个接口可以是其他接口的子接口,这说明接口之间会存在继承的关系.查找了相关的资料,做一个总结. 是继承还是实现 首先要搞清楚接口之间的关系使用的关键字是extends还是im ...

  8. 教你在Java接口中定义方法

    基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClie ...

  9. Java 接口基础详解

    目录 Java接口示例 实现一个接口 接口实例 实现多个接口 方法签名重叠 接口变量 接口方法 接口默认方法 接口与继承 继承与默认方法 接口与多态性 在Java中,接口是一个抽象类型,有点类似于类, ...

  10. 我对面向对象设计的理解——Java接口和Java抽象类

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

随机推荐

  1. C. Barcode dp

    https://codeforces.com/problemset/problem/225/C 这个题目和之前一个题目很像 https://www.cnblogs.com/EchoZQN/p/1090 ...

  2. spring的单元测试

    如果spring 4.3.18这个版本的spring要使用junit,需要使用junit的junit-4.12之上的版本.使用这个版本junit的时 候需要引入hamcrest-all的jar包.之前 ...

  3. Spring官网阅读(十)Spring中Bean的生命周期(下)

    文章目录 生命周期概念补充 实例化 createBean流程分析 doCreateBean流程分析 第一步:factoryBeanInstanceCache什么时候不为空? 第二步:创建对象(crea ...

  4. 异常: java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener

    如果出现这个错误信息,如果你的项目是Maven结构的,那么一般都是你的项目的Maven Dependencies没有添加到项目的编译路径下 解决办法: ①选中项目->右键Properties-& ...

  5. 【译】Using .NET for Apache Spark to Analyze Log Data

    .NET for Spark可用于处理成批数据.实时流.机器学习和ad-hoc查询.在这篇博客文章中,我们将探讨如何使用.NET for Spark执行一个非常流行的大数据任务,即日志分析. 1 什么 ...

  6. 散列表PTA判断

    1-1 在散列表中,所谓同义词就是具有相同散列地址的两个元素. (1分) T         F 作者 DS课程组 单位 浙江大学   1-2 采用平方探测冲突解决策略(h​i​​(k)=(H(k)+ ...

  7. mybatis association的使用

    在上一篇文章中介绍了collection的使用以及java bean,表的结构,今天进行association使用的学习,在多对一的映射关系中,查询到多的一方顺带查询出一的一方是常见的!在此例子中,在 ...

  8. js 延迟加载的几种方法

    1. defer 属性HTML 4.01 为 <script>标签定义了 defer属性. 用途:表明脚本在执行时不会影响页面的构造.也就是说,脚本会被延迟到整个页面都解析完毕之后再执行. ...

  9. Java IO流基础总结

    前言 好久不用Java的IO流,把好多的基础知识都忘了,昨天在写一段代码,发现好多细节都忘了.那天在组织组内代码评审的时候,发现有人在乱用IO流相关的类,所以还是写篇文章,把这个知识点总结一下. IO ...

  10. MySQLdb安装记

    1 安装 python-devel 2. site.cfg 改mysql_config成实际位置 mysql_config = /mysqldata/mariadb530/bin/mysql_conf ...