Java &引用;类不是抽象的,并且不会重写类中的方法;错误,但我实现了这些方法
我知道有很多问题与Java中的这个编译器错误有关。 我必须编码一个简单的媒体播放器的行为,播放图像、音频文件和视频。我写了七个类,其中三个是接口。下面是一个示意图:Java &引用;类不是抽象的,并且不会重写类中的方法;错误,但我实现了这些方法,java,interface,overriding,abstract-class,implements,Java,Interface,Overriding,Abstract Class,Implements,我知道有很多问题与Java中的这个编译器错误有关。 我必须编码一个简单的媒体播放器的行为,播放图像、音频文件和视频。我写了七个类,其中三个是接口。下面是一个示意图: AudioI包含与音量相关的方法:较弱、较大、getVolume和setVolume VideoI包含与亮度相关的方法:更亮、更暗、getBrightness和GetRightness MediaI包含媒体的一般方法:play、getTitle、setTitle、getDuration和setDuration 其他类别包括:
- AudioI包含与音量相关的方法:较弱、较大、getVolume和setVolume李>
- VideoI包含与亮度相关的方法:更亮、更暗、getBrightness和GetRightness李>
- MediaI包含媒体的一般方法:play、getTitle、setTitle、getDuration和setDuration
- 音频:实现AudioI、MediaI和扩展媒体李>
- 图像:实现视频i、媒体i和扩展媒体李>
- 视频:实现视频i、媒体i和扩展媒体李>
- 媒体:实现音频、视频和媒体李>
- InterfaceTest:我在这里测试方法和构造器
public interface AudioI{
public void louder();
public void weaker();
public int getVolume();
public void setVolume();
}
public interface VideoI{
public void brighter();
public void darker();
public int getBrightness();
public void setBrightness();
}
public interface MediaI{
public void play();
public int getDuration();
public void setDuration();
public String getTitle();
public void setTitle();
}
视频接口
public interface AudioI{
public void louder();
public void weaker();
public int getVolume();
public void setVolume();
}
public interface VideoI{
public void brighter();
public void darker();
public int getBrightness();
public void setBrightness();
}
public interface MediaI{
public void play();
public int getDuration();
public void setDuration();
public String getTitle();
public void setTitle();
}
媒体接口
public interface AudioI{
public void louder();
public void weaker();
public int getVolume();
public void setVolume();
}
public interface VideoI{
public void brighter();
public void darker();
public int getBrightness();
public void setBrightness();
}
public interface MediaI{
public void play();
public int getDuration();
public void setDuration();
public String getTitle();
public void setTitle();
}
音频类
public class Audio extends Media implements AudioI, MediaI{
private int volume;
private int duration;
private String title;
/**
CONSTRUCTORS
**/
Audio(){
this.title = "audio.mp3";
this.duration = 100;
this.volume = 5;
};
Audio(String title, int duration){
this.title = title;
this.duration = duration;
this.volume = 5;
};
/**
AUDIOI METHODS IMPLEMENTATION
**/
public void louder(){
if(this.volume < 10){
this.volume++;
}else{
System.out.print("Maximum volume reached");
}
};
public void weaker(){
if(this.volume > 0){
this.volume--;
}else{
System.out.print("Minimum volume reached");
}
};
public int getVolume(){
return this.volume;
};
public void setVolume(int volume){
if(volume > 9){
System.out.println("******************************");
System.out.println("* ERROR: maximum volume is 9 *");
System.out.println("******************************");
}else if(volume < 0){
System.out.println("******************************");
System.out.println("* ERROR: minimum volume is 0 *");
System.out.println("******************************");
}else{
this.volume = volume;
}
};
/**
MEDIAI METHODS IMPLEMENTATION
**/
public void play(){
int i;
System.out.println("TITLE: " + this.title);
System.out.print("VOLUME: >");
for(i = 0; i < this.volume; i++){
System.out.print(")");
}
System.out.println("");
};
public int getDuration(){
return this.duration;
};
public void setDuration(int duration){
this.duration = duration;
};
public String getTitle(){
return this.title;
};
public void setTitle(String title){
this.title = title;
};
}
公共类音频扩展媒体实现AudioI,MediaI{
私人国际卷;
私有整数持续时间;
私有字符串标题;
/**
建设者
**/
音频(){
this.title=“audio.mp3”;
这个时间=100;
这个体积=5;
};
音频(字符串标题,整数持续时间){
this.title=标题;
这个。持续时间=持续时间;
这个体积=5;
};
/**
音频方法实现
**/
公共空间更大(){
如果(该体积小于10){
这个.volume++;
}否则{
系统输出打印(“达到最大容量”);
}
};
公共图书馆{
如果(此卷>0){
本卷——;
}否则{
系统输出打印(“达到最小体积”);
}
};
public int getVolume(){
返回此.volume;
};
公共void setVolume(int volume){
如果(卷>9){
System.out.println(“****************************************”);
System.out.println(“*错误:最大音量为9*”);
System.out.println(“****************************************”);
}否则如果(音量<0){
System.out.println(“****************************************”);
System.out.println(“*错误:最小卷为0*”);
System.out.println(“****************************************”);
}否则{
这个。体积=体积;
}
};
/**
媒体方法实现
**/
公共游戏{
int i;
System.out.println(“TITLE:+this.TITLE”);
系统输出打印(“卷:>”;
对于(i=0;i
图像类
public class Image extends Media implements VideoI, MediaI{
private String title;
private int brightness;
private int duration = 1;
/**
CONSTRUCTORS
**/
Image(){
this.title = "img.jpeg";
this.brightness = 5;
};
Image(String title){
this.title = title;
this.brightness = 5;
this.duration = 1;
};
/**
AUDIOI METHODS IMPLEMENTATION
**/
public void brighter(){
if(this.brightness < 10){
this.brightness++;
}else{
System.out.print("Maximum brightness reached.");
}
};
public void darker(){
if(this.brightness > 0){
this.brightness--;
}else{
System.out.print("Minimum brightness reached.");
}
};
public int getBrightness(){
return this.brightness;
};
public void setBrightness(int brightness){
if(brightness > 10){
System.out.println("* ERROR: maximum brightness is 10 *");
}else if(brightness < 1){
System.out.println("* ERROR: minimum brightness is 1 *");
}else{
this.brightness = brightness;
}
};
/**
MEDIAI METHODS IMPLEMENTATION
**/
public void play(){
int i;
System.out.println("TITOLO: " + this.title);
System.out.print("LUMINOSITA': >");
for(i = 0; i < this.brightness; i++){
System.out.print("*");
}
System.out.println("");
};
public int getDuration(){
return this.duration;
};
public void setDuration(int duration){
System.out.println("ERROR: cannot set image duration");
};
public String getTitle(){
return this.title;
};
public void setTitle(String title){
this.title = title;
};
}
公共类图像扩展媒体实现VideoI,MediaI{
私有字符串标题;
亮度;
私有整数持续时间=1;
/**
建设者
**/
图像(){
this.title=“img.jpeg”;
这个亮度=5;
};
图像(字符串标题){
this.title=标题;
这个亮度=5;
这1.duration=1;
};
/**
音频方法实现
**/
公众假期{
如果(此亮度小于10){
这个.亮度++;
}否则{
系统输出打印(“达到最大亮度”);
}
};
公共空间较暗(){
如果(此亮度>0){
这是“亮度”——;
}否则{
系统输出打印(“达到最小亮度”);
}
};
public int getBrightness(){
返回此项。亮度;
};
公共亮度(整数亮度){
如果(亮度>10){
System.out.println(“*错误:最大亮度为10*”);
}否则如果(亮度<1){
System.out.println(“*错误:最小亮度为1*”);
}否则{
这个。亮度=亮度;
}
};
/**
媒体方法实现
**/
公共游戏{
int i;
System.out.println(“TITOLO:+this.title”);
系统输出打印(“亮度”:>”;
对于(i=0;i
视频课
import java.util.ArrayList;
public class Video extends Media implements VideoI, MediaI{
private int duration;
private String title;
private int brightness;
private Image buff;
ArrayList<Image> images = new ArrayList<Image>();
/**
CONSTRUCTORS
**/
Video(){
for(int i = 0; i < 100; i++){
images.add(new Image("img" + i + ".jpeg"));
}
this.brightness = 5;
this.duration = 100;
this.title = "slideshow.mkv";
};
Video(String title, int nOfImages){
for(int i = 0; i < nOfImages; i++){
buff = new Image("img" + i + ".jpeg");
this.images.add(buff);
}
this.brightness = this.images.get(0).getBrightness();
this.duration = nOfImages;
this.title = title;
};
/**
VIDEOI METHODS IMPLEMENTATION
**/
public void brighter(){
int i;
if(this.brightness < 10){
this.brightness++;
for(i = 0; i < this.images.size(); i++){
this.images.get(i).setBrightness(this.brightness);
}
}else{
System.out.print("Maximum brightness reached.");
}
};
public void darker(){
int i;
if(this.brightness > 0){
this.brightness--;
for(i = 0; i < this.images.size(); i++){
this.images.get(i).setBrightness(this.brightness);
}
}else{
System.out.print("Minimum brightness reached.");
}
};
public int getBrightness(){
return this.brightness;
};
public void setBrightness(int brightness){
if(brightness < 0){
System.out.println("**********************************");
System.out.println("* ERROR: minimum brightness is 0 *");
System.out.println("**********************************");
}else if(brightness > 10){
System.out.println("***********************************");
System.out.println("* ERROR: maximum brightness is 10 *");
System.out.println("***********************************");
}else{
for(int i = 0; i < this.images.size(); i++){
this.images.get(i).setBrightness(brightness);
this.brightness = brightness;
}
}
};
/**
MEDIAI METHODS IMPLEMENTATION
**/
public void play(){
int i;
System.out.println("TITOLO: " + this.title);
System.out.print("LUMINOSITA': >");
for(i = 0; i < this.brightness; i++){
System.out.print("*");
}
System.out.println("");
System.out.print("DURATA VIDEO: ");
for(i = 0; i < this.images.size(); i = i + 10){
System.out.print("[] ");
}
System.out.println("");
};
public int getDuration(){
this.duration = this.images.size();
return this.duration;
};
public void setDuration(int duration){
System.out.println("ERROR: cannot set video duration");
};
public String getTitle(){
return this.title;
};
public void setTitle(String title){
this.title = title;
};
}
import java.util.ArrayList;
公共类视频扩展媒体实现视频i,媒体i{
私有整数持续时间;
私有字符串标题;
亮度;
私人图像buff;
ArrayList images=新的ArrayList();
/**
建设者
**/
视频(){
对于(int i=0;i<100;i++){
添加(新图像(“img”+i+”.jpeg”);
}
这个亮度=5;
这个时间=100;
this.title=“slideshow.mkv”;
};
视频(字符串标题、整数图像){
对于(int i=0;i