JAVA编程思想学习笔记(八)接口

接口

抽象类和抽象方法

抽象方法:这种方法不完整,仅有声明而没有方法体。所采用的语法如下:

abstract void f();

抽象类:包含抽象方法的类叫做抽象类,如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。

接口

关键字:interface
接口定义了一个完全的抽象类,它根本就没有提供任何具体的实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供形式,而未提供任何具体实现。
要创建接口,要用interface代替class关键字。
当要实现一个接口时,在接口中定义的方法必须被定义为public的,否则,它只能得到默认的包访问权限。

java中的多重继承

在这里插入图片描述
当将一个具体类和多个接口组合在一起的时候,这个具体类必须放在前面,后面跟着的才是接口。
通过继承,可以很容易的在接口中添加新的方法声明,还可以通过接触在接口中组合数个接口。
你放入接口中的任何域都自动是static和final的,所以接口就成为了一种很便捷的用来创建常量的工具。
接口可以嵌套在类或其他接口中。嵌套接口也可以是private类型,实现private接口只是一种方式,它可以强制该接口中的方法定义不要添加任何类型信息。(也就是说不许向上转型)
注:
接口的很多应用都和设计模式有关,这里就不多介绍,直接在设计模式中再做详细说明。另外,觉得最后总结,作者说的很有启发,这里摘抄部分。
“确定接口是理想选择,因而应该总是选择接口而不是具体的类”这其实是一种引诱。当然,对于创建类,几乎在任何时刻,都可以替代为创建一个接口和一个工厂。
许多人都掉进了这种诱惑的陷阱, 只要有可能就去创建接口和工厂。 这种逻辑看起来好像是因为需要使用不同的具体实现, 因此总是应该添加这种抽象性。 这实际上已经变成了一种萃率的设计优化。
任何抽象性都应该是应真正的需求而产生的。 当必需时, 你应该重构接口而不是到处添加额外级别的间接性, 并由此带来的额外的复杂性。 这种额外的复杂性非常显著, 如果你让某人去处理这种复杂性, 只是因为你意识到由于以防万一而添加了新接口, 而没有其他更有说服力的原因, 那么好吧, 如果我碰上了这种事, 那么就会质疑此人所作的所有设计了。
恰当的原则应该是优先选择类而不是接口 。 从类开始, 如果接口的必需性变得非常明确, 那么就进行重构。 接口是一种重要的工具, 但是它们容易被滥用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值