java问题太伤脑筋拉

来源:百度知道 编辑:UC知道 时间:2024/05/30 15:24:40
我在java的API帮助文档里查得:AudioClip是一个接口。我想既然是一个接口,它的实现方式应该要通过implements关键字,而书上是这样的:
//LifeCycleDemo.java
//<applet code="LifeCycleDemo.class" width=200 height=200>
//</applet>
import java.awt.Graphics;
import java.applet.*;
import javax.swing.JApplet;
public class LifeCycleDemo extends JApplet{
AudioClip clip;//这里他不是一个接口吗怎么能创建对象呀?
public void init(){
clip=getAudioClip(getDocumentBase(), "spacemusic.au");
}
public void paint(Graphics g){
super.paint(g);
g.drawString("This is AudioClip!", 50, 50);
}
public void start(){
clip.loop();//还有这里这个对象还可以引用这个接口的方法;接口里的方法不都是用public abstract修饰的吗?应该都没有具体的方法才对呀?再这里也没有"实现"这个方法怎么就可以用拉呢?????????
}
public void stop(){
clip.stop();
}
}
这是什么原因?
跟没说一样

import java.awt.Graphics;
import java.applet.*;
import javax.swing.JApplet;
public class LifeCycleDemo extends JApplet{
AudioClip clip;//接口直接声明。因为接口和类是继承的关系,接口可以接收实现它的类,就像父类可以接收子类一样
public void init(){
clip=getAudioClip(getDocumentBase(), "spacemusic.au");
//返回一个实现了AudioClip接口的类对象

}
public void paint(Graphics g){
super.paint(g);
g.drawString("This is AudioClip!", 50, 50);
}
public void start(){
clip.loop();//还有这里这个对象还可以引用这个接口的方法;接口里的方法不都是用public abstract修饰的吗?应该都没有具体的方法才对呀?再这里也没有"实现"这个方法怎么就可以用拉呢?????????
}
public void stop(){
clip.stop();
}
}

JAVA中,各种东西都是类,接口其实也是一种类,它当然就可以创建对象