2020-11-28 接口

接口

接口是一种公共的规范标准,类似插座和usb, 是一种通用的标准,只要符合标准,就可以通用

接口更多的体现在对行为的抽象;

抽象类和接口的区别:

区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性,都会在京哈,牧羊犬中找到,那么狗相对于京哈和牧羊犬来说,就属于这类事物的抽象类型;而对于“叫”这个动作来说,狗可以叫,鸟也可以叫。很明显,前者相当于所说的是抽象类,而后者指的就是接口。

区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。`

1. 接口的特点

interface: 关键字
implements: 实现

接口如何实例化: 接口只能参照多态的方式,通过实现类实例化

多态: 抽象类多态, 接口多态

2. 接口的成员特点

接口的变量默认被static和final修饰;
接口里面不能有构造方法;

继承只能单继承,但是可以实现多个接口;

3. 抽象类和接口的区别
  • 成员特点:
    • 抽象类可以包含变量常量,和构造方法,抽象方法和非抽象方法
    • 接口只包含常量和抽象方法
  • 关系区别
    • 抽象类只能单继承
    • 接口可以多继承
  • 设计区别
    • 抽象类是对事物的抽象,包含属性和方法
    • 接口是对行为的抽象,主要是行为

门和报警的例子:
门都有open和close的行为,这是门的基本功能,那么可以定义在抽象类中;

门可能会有报警,摄像的功能,但是不是所有的门都有报警和摄像的功能,这些功能属于加装的功能
那么最好是定义为接口;

所以最佳的设计方式为,某个门继承门类,然后实现了报警的功能;

类似于买了车,继承了车跑的基本功能,但是实现(加装了)全息摄像的功能;

抽象类作为形参和返回值

返回具体化的继承类

接口类作为形参和返回值

返回具体化的继承类或者实现类

pandas like dataframe implemented by java: 
https://github.com/jtablesaw/tablesaw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值