接口的应用
来源:互联网 发布:淘宝销量优先搜索不到 编辑:程序博客网 时间:2024/05/16 02:22
1.为什么要使用接口?
以前所讲的继承例子:
claqss Printer {
void open () {
System.out.println ("open");
}
void close () {
System.out.println ("close");
}
void print (String s) {
System.out.println ("print--->" + s);
}
}
//惠普打印机
class HPPrinter extends Printer {
}
//佳能打印机
claqss CanonPrinter extends Printer {
void clean() {
System.out.println ("clean");
}
void close () {
this.clean ();
super.close ();
}
}
现在改为接口:
interface Printer {
public void open () ;
public void close ();
public void print (String s);
}
class HPPrinter implements Printer {
public void open () {
System.out.println ("HP open");
}
public void close (){
System.out.println ("HP close");
}
public void print (String s){
System.out.println ("HP print --->" + s);
}
}
class CanonPrinter implements Printer {private void clean () {
System.out.println ("Canon clean");
}
public void open () {
System.out.println ("Canonopen ");
}
public void close () {
System.out.println ("Canonclose ");
}
public void print (String s) {
System.out.println ("Canonprint --->" + s);
}
}
class Test {
public static void main (String args []) {
//根据用户的选择选择相应的对象,并且向上转型为Pinter类型
Printer printer = null;
int flag = 0;
if (flag = 0){
printer = new HPPrinter ();
}
else if (flag = 1){
printer = new Canonrinter ();
}
printer .open ();
printer .print ("test");
printer .close ();
}
}
如果再添加十个打印机呢,如果再写十个类就太麻烦了,那就需要用的工厂模式了2.工厂方法模式
class PrinterFactory {
public Printer getPrinter (int flag) {
Printer printer = null;
if (flag = 0){
printer = new HPPrinter ();
}
else if (flag = 1){
printer = new Canonrinter ();
}
return printer;
}
}
其他类相同,只需改变Test 类
class Test {
public static void main (String args []) {
//根据用户的选择选择相应的对象,并且向上转型为Pinter类型
Printer printer = null;
int flag = 0;
Printer printer = PrinterFactory.getPrinter (flag);
printer .open ();
printer .print ("test");
printer .close ();
}
}
- 接口的应用
- 接口测试的应用
- 接口的应用
- 接口测试的应用
- FCKeditorAPI接口的应用
- 接口的小应用
- 接口的应用
- java接口的应用
- 接口的简单应用
- JAVA 接口的应用
- 接口的应用
- 接口的应用
- Java4Android-接口的应用
- java9.接口的应用
- 接口的典型应用
- java29接口的应用
- 接口的应用
- 接口的应用
- 虚拟机安装IOS,主机和ios文件共享
- struts2中的namespace意义
- psr(windows系统自带的问题步骤记录器)
- CString.Format的详细用法
- 函数DATENAME()与DATEPART()的区别
- 接口的应用
- java运行失败原因
- php与mysql通讯那点事
- 配置Apache将自己的电脑做服务器使局域网内的电脑访问自己的主机
- 双十一“败家”榜:广东土豪依然不差钱
- 架构
- android webview内的post请求(点击按钮)添加header行不通
- 正则表达式取括号内的值 按第一个空格分割字符串
- 纠结