java 程序输出 赵_赵雅智_java 接口

实现接口

接口定义后不能直接创建对象,必须由类实现接口后创建类的对象。

[public] class 类名 extends 基类 implements 接口1,…{

//类体

}注意:接口中的方法都是抽象的,因此实现接口的类必须重写这些方法。

public class Circle implements Figure{

double radius;

public Circle(double r){

radius=r;

}

public void area(){

System.out.println("圆的面积="+pi*radius*radius);

}

}

注意:

方法头必须和接口定义中的方法头完全相同,public修饰符不能省略。

如果类实现了多个接口,必须重写这些接口中的所有方法。

接口不是类,不能使用new实例化接口,但可以声明接口变量。接口变量可以指向一个实现了该接口的类的对象。

Shape s=new Shape(); //错 Shape s=new Circle(); //对

可以使用instanceof来判断对象是否实现了某个接口。

虽然可以使用接口变量来引用实现接口类的对象,但这种引用只能引用接口的成员,否则会发生编译错误。 interface Output

{

final int MAX_CACHE_LINE = 10;

void out();

void getData(String msg);

}

interface Product

{

int getProduceTime();

}

public class Printer implements Output,Product

{

private String[] printData = new String[MAX_CACHE_LINE];

private int dataNum = 0;

public void out(){

while (dataNum>0)

{

System.out.println("打印机打印:"+printData[0]);

System.arraycopy(printData,1,printData,0,--dataNum);

}

}

public void getData(String msg){

if(dataNum >= MAX_CACHE_LINE){

System.out.println("输出队列已满,添加失败");

}else{

printData[dataNum++] = msg;

}

}

public int getProduceTime(){

return 45;

}

public static void main(String[] args){

Output o = new Printer();

o.getData("轻量级");

o.getData("Stu");

o.out();

o.getData("基于");

o.getData("Ruby");

o.out();

Product p = new Printer();

System.out.println(p.getProduceTime());

Object obj = p;

}

}

强调:接口最适合为不相关的类提供通用功能,利用接口提供的方法,程序可以多态地处理这些完全不同的类的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值