免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 962 | 回复: 0
打印 上一主题 下一主题

java中的接口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-22 10:15 |只看该作者 |倒序浏览
java中的接口
1、java中的几个程序
E.java
class A  {
public void gongji() {
System.out.println("Inside A's constructor.");
}
}
class B  {
public void gongji() {
System.out.println("Inside B's constructor.");
}
}

class C {
public void gongji() {
System.out.println("Inside C's constructor.");
}
}
class E  {
public static void main(String args[]){
A a = new A();
a.gongji();
B b = new B(); //若改为B a = new B();
b.gongji();    //a.gongji();
C c = new C(); //C a = new C();
c.gongji();    //a.gongji();
}
}
F.java
interface wuqi{
   public void gongji();
}
class A implements wuqi {
public void gongji() {
System.out.println("Inside A's constructor.");
}
}
class B implements wuqi {
public void gongji() {
System.out.println("Inside B's constructor.");
}
}


class C implements wuqi {

public void gongji() {
System.out.println("Inside C's constructor.");
}
}

class F  {
public static void main(String args[]){
wuqi a = new A();
a.gongji();
wuqi b = new B(); //若改为wuqi a = new B();
b.gongji();        //a.gongji();
wuqi c = new C(); //wuqi a = new C();
c.gongji();       //a.gongji();
}
}
D.java
interface wuqi{
   public void gongji();
}
class A implements wuqi {
public void gongji() {
System.out.println("Inside A's constructor.");
}
}
class B implements wuqi {
public void gongji() {
System.out.println("Inside B's constructor.");
}
}


class C implements wuqi {

public void gongji() {
System.out.println("Inside C's constructor.");
}
}
class wqkzt {

public void kaihuo(wuqi w) {
  w.gongji();
}
}
class D  {
public static void main(String args[]){
wqkzt e=new wqkzt();
e.kaihuo(new A());
e.kaihuo(new B());
e.kaihuo(new C());
}
}
2、java中使用接口的本质
(1)java中的对象是作为“常规”变量实现的,不同于java中的简单类型,对象有许多的属性和特性,注定了java处理简单类型和简单类型的开销是不一样的。所以E.java和F.java中更改程序后是不可行的。由于变量a b c都要占用系统资源,所以E.java和F.java的编程方式是不可取的。D.java中利用了接口和工厂的编程模式,解决了这些问题。
(2)降低编程中的耦合。
如程序F.java

class A  {
public void method1() {
System.out.println("Inside A's constructor.");
}
}
class B  {

public void method2() {
System.out.println("Inside B's constructor.");
A kkk = new A();
kkk.method1();
}
}

class C {
public void method3() {
System.out.println("Inside C's constructor.");
}
}
class F {
public static void main(String args[]){
A a = new A();
a.method1();
B b = new B();
b.method2();     
C c = new C();
c.method3();   
}
}
如果使用接口和工厂相结合的模式的话就会降低耦合。
通过接口变量逐一调用方法,既简化了程序又降低了系统的开销。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6574/showart_48817.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP