Java | 接口和抽象类
来源:互联网 发布:yy静态头像psd源码 编辑:程序博客网 时间:2024/06/08 14:16
抽象类是普通的类和接口之间的一种中庸之道。abstract关键字允许人们在类中创建一个或多个没有任何定义的方法——提供了接口部分,但是没有提供任何相应的具体实现,这些实现是由此类的继承者创建的。
接口只提供了形式,而未提供任何具体实现。interface这个关键字产生一个完全抽象的类,根本没有提供任何具体实现。允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类的类型,来实现某种类似多重继变种的特性。
创建接口,需要用interface关键字来代替class关键字,就像类一样,可以在interface关键字前面添加public关键字(但仅限于该接口在与其同名的文件中被定义)。如果不添加public关键字,则它只具有包访问权限,只能在同一个包内可用。接口也可以包含域,但这些域隐式地为static和final的。
要让一个类遵循某个特定接口(或者是一组接口),需要使用implement关键字。
参考:http://blog.csdn.net/bailuweishuang520/article/details/51340426
完全解耦是尽最大程度降低类与类之间的耦合度,使程序具有很好的扩展性,便于修改。
耦合:类和类、模块和模块之间存在依赖关系,如果修改了某个实现就需要改一堆已经编写好的代码,这就是代码耦合度较高。/分层、注入、面向接口编程都是解耦的方式。
import java.util.*;//Processor接口interface Processor{public String name();Object process(Object input);}//实现Processor接口的静态类StringProcessorpublic abstract class StringProcessor implements Processor{public String name(){return getClass().getSimpleName();}public abstract String process(Object input);public static String s = "If she weights the same as a duck,she's made of wood";public static void main(String[] args){Apply.process(new Upcase(),s);Apply.process(new Downcase(),s);Apply.process(new Splitter(),s);}}//StringProcessor的子类Upcaseclass Upcase extends StringProcessor{public String process(Object input){return ((String)input).toUpperCase();}}//StringProcessor的子类Downcaseclass Downcase extends StringProcessor{public String process(Object input){return ((String)input).toLowerCase();}}//StringProcessor的子类Splitterclass Splitter extends StringProcessor{public String process(Object input){return Arrays.toString(((String)input).split(" "));}}class Apply{public static void process(Processor p,Object s){System.out.println("Using Process: "+p.name());System.out.println(p.process(s));}}/**疑问:(1)为什么要用到apply类呢?**/
阅读全文
0 0
- Java 抽象类,抽象方法和接口
- Java抽象类和抽象方法、接口
- Java接口和抽象类
- java接口和抽象类
- java 接口和抽象类
- java接口和抽象类
- JAVA抽象类和接口
- java抽象类和接口
- java抽象类和接口
- Java:抽象类和接口
- java接口和抽象类
- Java 抽象类和接口
- JAVA抽象类和接口
- java抽象类和接口
- java接口和抽象类
- JAVA抽象类和接口
- Java抽象类和接口
- java 抽象类和接口
- ionic3学习笔记(四)
- UITableView 的使用
- 正弦信号发生器设计制作经验教训
- 【解题报告】poj openjudge 拼写检查 pku数算mooc 检索
- 申请腾讯云服务器
- Java | 接口和抽象类
- 更新web项目时备份脚本
- idea启动两个端口的相同springboot服务
- redis持久化
- 740. Delete and Earn
- tensorflow/contrib/slim
- Tensorflow深度学习之二十:CIFAR-10数据集介绍
- SSL_2295 暗黑破坏神(动规练习题)
- ios开发关于多线程编程的理解(一)