java 接口

 Interface指定一个类必须做什么,而不规定如何去做。没有实例变量。一旦接口被定义,任何类可以实现一个接口。实现接口的类可以自定义自己的方法,利用多态,实现一个接口,多个方法。

当实现一个接口的方法时,必须声明为public

类在实现接口的方法时可定义自己的成员。

定义callback为接口, Client为接口的实现类,Callback c = new Client();c被定义成接口类型,被Client实例赋值,只能访问Callback的方法,不能访问Client的其他方法。

如果一个类包含一个接口但是不完全实现接口定义的方法,那么该类必须声明定义成abstract型。

测试程序:

package my;

 

 

interface IntStack

{

void push(int item);

int pop();

}

class FixedStack implements IntStack

{

private int stck[];

private int tos;

FixedStack(int size)

{

stck = new int[size];

tos = -1;

}

public void  push(int item)

{

if(tos == stck.length-1)

System.out.println("Stack is full");

else

stck[++tos] = item;

}

public int pop()

{

if(tos<0)

{

System.out.println("Stack underflow");

return 0;

}

else 

return stck[tos--];

}

}

class DynStack implements IntStack

{

private int stck[];

private int tos;

DynStack(int size)

{

stck = new int[size];

tos = -1;

}

public void push(int item)

{

// TODO Auto-generated method stub

if(tos==stck.length-1)

{

int temp[] = new int[stck.length * 2]; // double size

for(int i=0; i<stck.length; i++) temp[i] = stck[i];

stck = temp;

stck[++tos] = item;

}

else 

stck[++tos] = item;

}

@Override

public int pop()

{

// TODO Auto-generated method stub

if(tos<0)

{

System.out.println("Stack underflow.");

return 0;

}

return 0;

}

}

public class hello

{

public static void main(String[] args)

{

IntStack mystack; // create an interface reference variable

DynStack ds = new DynStack(5);

FixedStack fs = new FixedStack(8);

mystack = ds; // load dynamic stack

// push some numbers onto the stack

for(int i=0; i<12; i++) mystack.push(i);

mystack = fs; // load fixed stack

for(int i=0; i<8; i++) mystack.push(i);

mystack = ds;

System.out.println("Values in dynamic stack:");

for(int i=0; i<12; i++)

System.out.println(mystack.pop());

mystack = fs;

System.out.println("Values in fixed stack:");

for(int i=0; i<8; i++)

System.out.println(mystack.pop());

}

 

}

程序执行结果:

Values in dynamic stack:

0

0

0

0

0

0

0

0

0

0

0

0

Values in fixed stack:

7

6

5

4

3

2

1

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值